- 博客(469)
- 资源 (3)
- 收藏
- 关注

原创 vue2调试源码
数据劫持 + 发布者-订阅者模式,递归Observer data数据,其实用Object.defineProperty() 来劫持各个属性的setter,getter,在数据变动时发布消息给订阅者,触发相应监听回调,Compile编译模板时,新增Watcher依赖,并触发相关属性的getter方法收集依赖,当我们让属性发生变化时,会notify发布消息给订阅者,触发依赖数据更新。很多时候会用到别名,想快速找到该文件可以复制路径和上面的方法一样 也可以找到。输入文件名字 就可以找到该文件。.........
2023-11-23 13:33:30
920

原创 vue3源码分析
项目链接vue-pure-admin项目源码GitHub地址项目源码码云地址项目学习地址vue-pure-admin (opens new window)是一个免费开源的中后台模版。使用了最新的vue3 vite2 Element-Plus TypeScript等主流技术开发,开箱即用的中后台前端解决方案,也可用于学习参考。安装的vscode插件定义组件import { h, defineComponent } from "vue";var IconifyIconOffline =
2023-11-23 13:33:19
2338

原创 webpack代码分割
Chunks:默认值是async另一个值是initial,表示对通过的代码进行处理all表示对同步和异步代码都进行处理minSize:拆分包的大小, 至少为minSize;如果一个包拆分出来达不到minSize,那么这个包就不会拆分;maxSize:将大于maxSize的包,拆分为不小于minSize的包;minChunks:至少被引入的次数,默认是1;如果我们写一个2,但是引入了一次,那么不会被单独拆分;name:设置拆包的名称。..................
2022-08-16 19:10:45
1075

原创 vue3实战
vite基于浏览器原生ES imports的开发服务器,利用浏览器去解析imports,在服务器端按需编译返回,完全跳过了打包这个概念,服务器随其随用同时不仅有vue文件支持,还搞定了热更新,而且热更新的速度不会随着模块增加而变慢使用vite创建vue项目 create-vite-app包npm init @vitejs/app <project-name>//可以选择创建vue项目 也可以创建react项目cd <project-name>npm install
2022-01-07 11:40:42
2018

原创 ts总结第一篇
先装上typescript包,新增脚本"scripts": { "dev":"tsc index.ts --watch" }npm run dev 执行命令,将index.ts文件 翻译为index.js文件比较基础的声明方式let name:string = "bob"let age:number = 10let married:boolean = truelet arr1:number[] = [1, 2, 3]let arr2:Array<number> =
2021-12-28 15:28:22
579
原创 lodash不支持 Tree Shaking 而 lodash-es可以
关键结论:Tree Shaking 依赖 ESM 静态结构 + 无副作用标记 + 构建工具配合,lodash-es 三者皆满足,而 lodash 因 CommonJS 动态性无法实现。若项目 Babel 配置将 ESM 转 CommonJS(@babel/preset-env 默认行为),即使使用 lodash-es 也会导致 Tree Shaking 失效。// 仍可能引入冗余代码。问题:打包工具(Webpack/Rollup)无法在编译阶段静态分析导出内容,无法安全删除未使用代码。
2025-07-11 15:16:27
523
原创 @vue/composition-api
等 API,你可以创建独立于组件的响应式系统,实现更灵活的状态管理。创建独立的副作用作用域,允许手动管理一组副作用的生命周期。内部的响应式对象会自动关联到当前组件实例,但在外部创建的响应式对象需要手动维护依赖关系。手动创建副作用函数,该函数会在依赖的响应式数据变化时自动执行。外部创建的响应式对象可被多个组件共享,但需注意避免过度使用全局状态,导致代码可维护性下降。组件内的响应式状态会随组件销毁自动释放,而外部状态需手动管理生命周期。组件外的响应式对象没有组件生命周期,需手动控制其销毁逻辑。
2025-05-27 14:34:18
627
原创 总结网站合集
奔跑中的奶酪 https://www.runningcheese.com/aaa。哎呦不错 https://aiyoubucuo.com/今日热榜 https://tophub.today/不死鸟分享为王 https://iui.su/
2025-05-12 09:25:18
271
原创 帮助注释json文件的插件JsonComments
代码的任何一个属性上面,等待2秒,会显示一个加号图表,点击就可以输入了注释了。,可以帮助你实现注释。
2025-04-21 17:26:09
129
原创 介绍XML
XML是一种灵活的结构化数据格式,通过自定义标签描述数据,适用于需要严格规范和跨平台交互的场景。尽管现代Web开发中JSON更流行,但XML在传统企业系统、配置文件和特定领域(如SVG、XHTML)中仍有重要作用。理解XML的核心语法和用途,有助于掌握早期Web技术和数据交换的基础知识。
2025-04-21 14:53:12
762
原创 bignumber.js用法
bignumber.js 是一个专门用于处理大数字和高精度计算的 JavaScript 库,解决了 JavaScript 原生 Number 类型在处理大数或小数时的精度丢失问题(如金融计算、加密货币、科学计算等场景)。在中,a.plus(b)和a + b的两者都能正确执行高精度加法,返回相同的BigNumber实例。
2025-04-21 14:39:06
853
原创 多头,空头,对冲基金
多头(Long Position)定义:投资者预期资产价格将上涨,通过买入资产(如股票、期货、期权)建立头寸,待价格上涨后卖出获利。操作逻辑:低买高卖,典型案例包括:股票市场:2024年某投资者以100元/股买入A公司股票,预期其业绩增长带动股价上涨,若半年后股价涨至120元,则获利20%。期货市场:某粮食企业预期大豆价格将因天气减产上涨,买入大豆期货合约,待价格上涨后平仓获利。多头和空头是金融市场的“阴阳两面”,其本质是投资者对市场的不同预期。
2025-04-18 13:18:57
1170
原创 ECharts渲染机制
ECharts 的渲染机制通过双引擎架构(Canvas/SVG)覆盖了从高性能大数据可视化到高精度矢量图形的全场景需求,结合分层渲染差分更新硬件加速等优化策略,在灵活性和效率之间取得平衡。理解其渲染逻辑有助于开发者根据具体场景选择合适的配置(如引擎类型、数据简化策略),进一步提升图表性能和用户体验。
2025-04-17 17:20:26
1159
原创 SFC的含义
SFC 即 Single File Component,也就是单文件组件,在现代前端开发尤其是 Vue.js 框架中被广泛应用。下面将从概念、结构、优势、工作原理和应用场景几个方面详细介绍 SFC。
2025-04-17 16:34:03
1108
原创 grid用法
网格容器(Grid Container):通过设置 display: grid 或 display: inline - grid 将一个元素定义为网格容器,它包含了所有的网格项。网格线(Grid Line):划分网格轨道的线,包括垂直的列网格线和水平的行网格线,线有编号,从 1 开始。网格轨道(Grid Track):相邻两条网格线之间的空间,分为列轨道(垂直方向)和行轨道(水平方向)。网格单元格(Grid Cell):两条相邻的列网格线和两条相邻的行网格线所围成的区域,是网格的最小单位。
2025-04-16 10:28:44
235
原创 用nodejs,读取某个文件,解析该文件写的命令,然后按照先后顺序执行
【代码】用nodejs,读取某个文件,解析该文件写的命令,然后按照先后顺序执行。
2024-11-28 13:49:07
265
原创 JSON.stringify用法
的作用是将jsonData对象转换为格式化的 JSON 字符串,使用两个空格进行缩进,使结果更易读。这在调试或生成可读性强的配置文件时非常有用。如果你有更多问题或需要进一步的解释,请随时提问!
2024-10-24 18:01:50
766
原创 ts总结第二篇
typeRoots控制类型声明文件的根目录。types控制要包含在编译中的类型声明包。include和 exclude控制编译过程中的文件和目录范围。这些配置项的结合使你能够精确地控制 TypeScript 编译器的行为,包括如何处理类型声明文件和哪些文件应被编译。
2024-08-23 10:44:30
664
原创 终端命令,打开跨域浏览器
这两个命令都会启动一个新的 Chrome 实例,该实例会有跨域请求的能力。如果你只需要一次性的测试,可以在完成测试后关闭这个实例。:你可以在 Launchpad 中找到终端,或者使用 Spotlight 搜索。:在命令提示符中,输入以下命令以打开 Chrome 浏览器,并允许跨域请求。:在终端中,输入以下命令以打开 Chrome 浏览器,并允许跨域请求。的路径与实际安装路径一致。如果你安装在不同的位置,需要修改路径。
2024-08-23 09:06:02
669
原创 分析vue的watch监听打印新旧值
上,下一次设置新值之前,取出,我们需要把存的值,做一个深拷贝,但是会发现,第一次改变值,打印新旧值,打印的都是新值,后续又可以打印出新值和旧值,目前找不到原因,后续再看。,监听a属性,可以打印出新旧值,如果是监听复杂的对象,如下所示。当我们使用data属性下,一个简单属性如。在源码内,可以看到,把上一次值,给存到。
2024-08-21 14:02:00
557
原创 object.defineProperty用法
);// John// Doe在这个例子中,我们创建了一个属性name,它的值是'John',并且可以被修改()、可以被枚举(),并且可以被重新定义或删除(});// []// secret在这个例子中,属性hidden是不可枚举的,因此它不会出现在的结果中,但它仍然可以通过obj.hidden访问。允许你以非常细粒度的方式定义对象的属性及其行为。通过使用属性描述符,你可以控制属性的读写、枚举和配置行为,这对于创建复杂的对象和实现自定义行为非常有用。
2024-08-21 13:26:08
625
原创 vscode查找匹配项
将下一个查找匹配项添加到选择Ctrl+D或Cmd+D): 逐个选择每个查找结果,将其添加到选择中,适合需要逐步选择的场景。选择所有找到的查找匹配项或): 一次性选择所有匹配项,适合需要对所有匹配项进行批量操作的场景。这两个功能可以大大提高在 VSCode 中进行批量编辑和查找的效率。
2024-08-21 13:12:03
1748
原创 package.json的 && 和 &的区别,以及|| 和 | 的区别
用于串联构建过程的两个步骤,确保前一个步骤完成后才进行下一个步骤;这种设置通常用于需要同时运行多个服务或任务的场景。用于并行执行两个命令,使得。
2024-08-09 15:07:01
425
原创 npm ERR! network ‘proxy‘ config is set properly. See: ‘npm help config‘
【代码】npm ERR!
2024-07-24 13:24:43
256
原创 监听用户复制/粘贴的内容
是 JavaScript 中用于获取当前页面中被用户选中的文本内容的方法。这个方法通常在浏览器环境中使用,主要用于获取用户选择的文本部分。
2024-07-16 10:03:12
1321
原创 买轻量云服务器
在这种情况下,重新注册时需要提供真实的个人信息,包括姓名、身份证号码等,同时设置一个强密码来保护账户安全。为了账户的安全性,用户还应该确保自己的账户信息得到妥善保管,以免再次丢失。阿里云盘有一套严格的安全措施来保护用户的数据安全,例如设置强密码、启用两步验证功能、不要轻易分享账户信息和文件链接、定期备份数据等。如果一个用户在阿里云上注销了账户,然后重新以新的电子邮件地址和手机号码注册,该用户将被视为新的用户。总的来说,阿里云注销后重新注册并不能享受新用户的优惠,需要重新注册后以新用户的身份享受相应的服务。
2024-07-10 11:30:34
455
原创 vue绑定key
绑定 key 的作用在于告诉 Vue,如何对待每个 DOM 元素。它帮助 Vue 识别节点的身份,从而在数据发生变化时,更高效地更新 DOM。没有为列表中的元素绑定 key 值时,Vue 可能会出现混乱的 DOM 更新,或者出现意外的行为。指令进行列表渲染时,Vue 会尽可能高效地更新DOM。当数据发生变化时,Vue 会尝试尽量复用已有的 DOM 元素,而不是直接销毁和重新创建。为了让 Vue 能够正确地识别每个 DOM 元素,需要为每个元素提供一个唯一的 key 值。在 Vue 中,使用。
2024-03-19 09:16:55
551
原创 前端打包工具
Webpack 是当前前端开发中最流行的项目打包工具之一,但除了 Webpack,还有其他一些项目打包工具,例如:Parcel:Parcel 是一个快速、零配置的项目打包工具,支持多种类型的资源打包,包括 JavaScript、CSS、HTML、图片等。Rollup:Rollup 是一个用于 JavaScript 库和模块的项目打包工具,它的主要特点是对 ES6 模块进行优化打包,生成更小、更高效的输出。
2024-03-14 09:49:14
901
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人