- 博客(18)
- 收藏
- 关注
原创 vue2源码之diff算法
看vue源码有一段时间了,但每次对diff算法都一知半解,只知道采用了双端diff算法,但如何去比较、为什么要采用这种算法都不是很清楚,所以这次趁写文章的机会仔细研究一下。
2024-04-26 16:40:08
484
1
原创 eslint规则插件开发-自定义
eslint我们常应用在代码静态扫描中,通过设定的eslint的语法规则,来对代码进行检查,通过规则来约束代码的风格,以此来提高代码的健壮性,避免因为代码不规范导致应用出现bug的可能。而规则是自由的,可以设定内部自己团队适用的规则,也可以直接使用开源社区比较热门的规则集合, 比如airbnb、eslint-plugin-vue等。当完成上面一系列操作之后,eslint插件模版初步完成,接下来我们找到目录中lib/rules中对刚刚创建的rule进行开发/**meta : {} , };
2023-04-03 17:43:03
2757
1
原创 npm发包流程
1、注册账号 在npm官网(https://www.npmjs.com/)注册账号,并邮箱验证(十分重要)2、登录 打开cmd或者在需要发布的项目控制台中,执行npm login或npm addUser,然后会依次要求你输入npm 注册的账号、密码、邮箱。注意:如果此时报错E403,那可能是邮箱未验证或者检查源,不能指向淘宝源地址// 修改源地址npm config set registry https://registry.npmjs.org/3、发布// 发布命令np
2021-09-13 16:51:40
204
原创 vue性能优化
1、v-for循环列表 1)指定非下标的唯一key 2)不同时使用v-if2、图片资源懒加载 比如:使用v-lazyload3、路由组件懒加载// 比如const Home = () => import(’./pages/Home’)4、第三方插件按需引入(勿全局引入)5、数据庞大的数组、对象优化 1)冻结响应式数组/对象: 如果你有一个巨大的数组或Object,并且确信数据不会修改,使用Object.freeze()可以让性能大幅提升。在我的实际开发
2021-09-02 10:40:55
455
原创 微前端——乾坤qiankun Demo
微前端——qiankun(乾坤)实例一、什么是微前端微前端就是将不同的功能按照不同的维度拆分成多个子应用。通过主应用来加载这些子应用。微前端的核心在于拆,拆完后在合!二、为什么使用微前端不同团队间开发同一个应用技术栈不同希望每个团队都可以独立开发,独立部署项目中还需要老的应用代码我们可以将一个应用划分成若干个子应用,将子应用打包成一个个的 lib 。当路径切换 时加载不同的子应用。这样每个子应用都是独立的,技术栈也不用做限制了!从而解决了前端协同开发问题。三、qiankun框架**文档
2020-12-05 16:08:36
23956
22
原创 ES6之函数
一、函数的变化1. 函数默认参数function fn({a='0', b='1'} = {}) { console.log(a, b);};fn(); //0 1定义函数时可以给函数参数设置默认值,当调用函数时如果不传参或某个参数不传,那么函数的该参数就会设置成此默认值。2. 函数参数默认已经定义了,不能再使用let、const在函数内去定义function fn({a=...
2019-12-11 11:37:34
114
原创 ES6之解构赋值
一、简易格式let [a, b, c] = [1, 2, 3];console.log(a); //1console.log(b); //2console.log(c); //3二、左右两侧结构保持一致三、解构时可以赋默认值let [a, b, c="默认值"] = ["aaa", "b"];四、代码案例let [a,b] = [1,2,3]console.log(a); ...
2019-12-10 16:43:08
111
原创 ES6之let、const
一、let1. 没有预解析,不存在变量提升function fn() { console.log(a); //Uncaught ReferenceError: Cannot access 'a' before initialization let a = 10;}fn();function fn1() { console.log(a); //undefined var a = ...
2019-12-10 15:33:35
100
原创 nodejs实现复制文件
一、引入文件系统模块var fs = require('fs');二、写入文件//写文件function writeFile(data) { fs.writeFile('01-copy.txt',data, function (err) { if (err) { throw err; }else { console.log('文件写入成功');...
2019-10-21 16:34:12
486
原创 冒泡
冒泡排序一、基本思想冒泡排序的基本思想:所谓的冒泡排序就是泡泡一个一个往上冒,体积最轻的浮在最上面,然后按照重量往下依次排序。二、动图演示三、案例var a=[12,3,43,11,56,90,7,66,82];拿上面数组举例,我们要做一个升序排列。第一轮循环我们就得把值最大的数从数组中找出来放在数组最后面,即索引为a.length-1。也就是从a[0]开始依次比较相邻两个数的大小...
2019-08-01 16:52:42
971
原创 Cookie、LocalStorage、SessionStorage
Cookie、LocalStorage、SessionStorage一、基本概念1、Cookiecookie非常小,大小限制大约4k左右,通常用来报存用户信息等操作。2、localStoragelocalStorage 是 HTML5 标准中新加入的技术。3、sessionStoragesessionStorage 与 localStorage 的接口类似,但保存数据的生命周期与 l...
2019-08-01 16:51:40
286
原创 function解析与JS预解析
function解析一、定义函数的三种方法1、function函数function fn(x) { alert(x);}2、function构造函数var fn = new Function('x','alert(x);')var fn = new Function('alert(x);') //与上面一种构造函数相似3、函数字面量var fn = function(x)...
2019-08-01 16:48:56
251
原创 JavaScript数据类型
JS数据类型一、JS数据类型(6种)number、boolean、string、null、object、underfine。[外链图片转存失败(img-SPbkqUTo-1564643301273)(C:\Users\zxliu\AppData\Roaming\Typora\typora-user-images\1561347103716.png)]1、numbernumber数据类型指...
2019-08-01 15:10:02
97
原创 JS闭包,作用域,this
JS闭包,作用域,this一、闭包1、变量的作用域要理解闭包,首先必须理解JavaScript特殊的作用域。变量的作用域分为两种:全局变量和局部变量。a、函数内部可以直接读取全局变量:var n=999;function f1(){ alert(n);}f1(); // 999b、函数外部无法读取函数内部的局部变量function f1(){ var n=999;...
2019-07-31 14:23:17
165
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人