摘要:
初始化项目 ├── package.json └── src ├── bin.ts └── index.ts 首行是 Hashbang, Hashbang是一种特殊的注释,以 #! 开头,通常出现在可执行的脚本文件的第一行,用于告诉系统要使用哪个解释器来执行该脚本文件。 #!/usr/bin/env 阅读全文
摘要:
初始化、包安装、更新 npm install npm@latest -g,安装最新版本npm npm init,创建package.json文件 npm update -g lodash,更新包 发布npm包 npm whoami,查看谁在登录当前npm账号 npm publlish npm ver 阅读全文
摘要:
点击某个元素及点击某个元素之外的地方 <!DOCTYPE html> <html> <style> .left { width: 100px; height: 200px; background: red; float: left; } .right { height: 300px; backgro 阅读全文
摘要:
节流 一种常用的性能优化技术,可以限制函数的执行频率,避免过多的重复操作,提升页面的响应速度; 函数在n秒内只执行一次,如果多次触发,则忽略执行; 应用场景:拖拽场景;scroll场景;窗口大小调整 function throttle(func, delay) { let lastCallTime 阅读全文
摘要:
设计模式 1. 设计模式 2. 工厂模式 3. 单例模式 4. 原型模式 5. 装饰器模式 6. 适配器模式 7. 代理模式 8. 策略模式 9. 状态模式 10. 观察者模式 & 发布订阅模式 11. 迭代器模式 12. vue中用到的设计模式 设计模式 设计模式基本原则:单一功能原则、开放封闭原 阅读全文
摘要:
VDOM VDOM,JavaScript对象,即对真实DOM的描述; 虚拟DOM创建页面性能:创建JavaScript对象的计算量 + 创建真实DOM的计算量;(第一步,创建JavaScript对象,即真实DOM的描述;第二步,递归地遍历虚拟DOM树并创建真实DOM;) 虚拟DOM更新更新页面过程: 阅读全文
摘要:
Vue 1. 同构渲染 同构渲染 客户端渲染(render.render):Vue.js可以用于构建客户端应用程序,组件的代码在浏览器中运行,并输出DOM元素; 服务端渲染:同时,Vue.js还可以在Node.js环境中运行,它可以将同样的组件渲染为字符串并发送给浏览器; 同构渲染(render.h 阅读全文
摘要:
Vue 1. 编译器核心技术概览 2. 解析器 3. 编译优化 编译器核心技术概览 模板DSL的编译器 编译器,一段程序,将语言A翻译成语言B;其中语言A叫源代码,语言B叫目标代码; 编译器将源代码翻译为目标代码的过程叫编译; 完整的编译过程包括:词法分析、语法分析、语义分析、中间代码生成、优化、目 阅读全文
摘要:
Vue组件化 1. 组件化 组件化 渲染器主要负责将虚拟DOM渲染为真实DOM;只需要使用虚拟DOM来描述最终呈现的内容即可。当编写比较复杂的页面时,用来描述页面结构的虚拟DOM的代码量会变得越来越多,或者说页面模板会变得越来越大,这时就需要组件化的能力。 有了组件,则可以将一个大的页面拆分为多个部 阅读全文
摘要:
Vue渲染器 1. 渲染器 2. 挂载与更新 3. 简单diff 4. 双端diff 5. 快速diff 渲染器 渲染器与响应式系统关系:利用响应系统的能力,自动调用渲染器完成页面的渲染和更新。 渲染器:用来执行渲染任务的,把虚拟DOM渲染为特定平台上的真实元素;浏览器平台上,把虚拟DOM渲染为真实 阅读全文
摘要:
### Vue 1. 响应式系统的作用与实现 2. 非原始值的响应式方案 3. 原始值的响应式方案 1. 响应式系统的作用与实现 响应式数据与副作用函数 副作用函数 “副作用函数”通常指的是除了返回值之外,还会对函数外部的状态产生影响的函数。如,一个函数修改了全局变量、修改了传入的引用类型参数(而不 阅读全文
摘要:
安装 npm install typescript -g yarn global add typescript 执行 tsc Demo1.ts npm install -g ts-node ts-node Demo1.ts 静态类型 : number 就是定义了一个静态类型 如果使用了静态类型,不仅 阅读全文
摘要:
性能优化 1. 从输入URL到页面加载完成,发生了什么 2. webpack与Gzip 3. 图片优化 4. 浏览器缓存 5. 本地存储 6. CDN 7. 服务端渲染 8. 浏览器端的性能优化 9. DOM优化 10. 事件循环与异步更新策略 11. 回流与重绘 12. 优化首屏体验-懒加载 13 阅读全文
摘要:
Vue 1. 权衡的艺术 2. 框架设计的核心要素 3. vue.js3设计思路 1. 权衡的艺术 框架设计:在保持可维护性的同时让性能损失最小化; 命令式 VS 声明式 从范式上来看,视图层框架分为命令式和声明式。 命令式框架:关注过程,性能优; 声明式框架:关注结果,可维护性好 框架设计需要考虑 阅读全文
摘要:
1. 卸载npm本地依赖包node_modules 2. 安装pnpm: npm install -g pnpm 3. 创建配置文件,项目根目录下创建.npmrc文件 4. 转换相关文件:将package.json转成pnpm-lock.yaml文件,保证依赖版本不变:pnpm import 5. 阅读全文
摘要:
模块 允许代码分离,将其组织为可维护的单元,提升代码的可复用性和可读性; CommonJS(CJS)、ECMAScript Modules(ESM) CJS模块系统 导出模块 只需要使用module.exports或exports将模块中的内容导出即可 module.exports, // 指定属性 阅读全文
摘要:
npm (1)npm镜像源配置 npm默认的镜像地址是:https://registry.npmjs.org 淘宝开源的镜像站:https://registry.npmmirror.com/ 查看当前的镜像源:npm config get registry 设置为淘宝镜像源:npm config s 阅读全文
摘要:
冒泡排序: 比较相邻的元素,根据排序从小到大还是从大到小判断是否交换,一趟下来,有一个已排好序;如果遇到某一趟数据已经没有出现交换,说明已是有序数组,退出即可 function bubble(arr){ if(!(Array.isArray(arr))) { alert('数据类型有误,请传入数组' 阅读全文
摘要:
从0到0.8 vite 创建项目 eslint prettier EditorConfig 提交代码检测:husky && lint-staged proxy env-development 引入vuex@next 引入vue-router@next 引入axios 按需引入element-plus 阅读全文
摘要:
项目下下来直接跑,没问题,修改后报错跑不起来。原因是ESlint配置不匹配的问题,如项目中设置的是单引号配置,自动保存格式化后成了双引号 ,然后就报错了在,这时候可以选择修改vscode默认配置与项目一致,如setting.json文件中增加如下配置: { "vetur.format.default 阅读全文