防抖节流 发表于 2020-08-25 | 分类于 JavaScript | 防抖在触发事件n秒后执行,如果n秒内再次触发,则在n秒后执行 1234567891011function debounce(method, time) { let timeout return function() { let that = this ... 阅读全文 »
vue生命周期 发表于 2020-08-21 | 分类于 Vue , Vue生命周期 | beforecreate: 完成实例初始化,初始化非响应式变量,this指向创建的实例;可以在这加个loading事件;data computed watch methods上的方法和数据均不能访问 created: 实例创建完成,完成数据(Inject 、Provide 、 props 、m ... 阅读全文 »
关于promise 发表于 2020-08-19 | 分类于 JavaScript | promise实现以下为手写promise,实现的比较粗略promise作为构造函数实现 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 ... 阅读全文 »
Vue虚拟dom 发表于 2020-08-03 | 分类于 Vue , 虚拟Dom,diff算法 | 虚拟DOM是什么?本质就是一个JS对象描述DOM节点,可以理解为将dom节点抽象成一个对象。 有什么用?提供与真实DOM节点所对应的虚拟节点vnode将虚拟节点vnode和旧虚拟节点oldVnode进行对比,然后更新视图 Virtual DOM优势 具备跨平台的优势由于 Virtual DOM 是以 ... 阅读全文 »
tree-shaking 发表于 2020-08-03 | 分类于 webpack | 起源于 rollup, 目前webpack也可以使用tree-shaking用来删除无用的代码 原理ES6的模块引入是静态分析的,故而可以在编译时正确判断到底加载了什么代码。分析程序流,判断哪些变量未被使用、引用,进而删除此代码。 存在问题 虽然生产模式下默认开启,但是由于经过 babel 编译全部 ... 阅读全文 »
Vue源码之双向数据绑定 发表于 2020-08-02 | 分类于 Vue , 双向绑定 | 双向数据绑定方式发布订阅方式一般通过sub, pub的方式实现数据和视图的绑定监听,更新数据方式通常做法是 vm.set(‘property’, value) 脏值检查angular.js 是通过脏值检测的方式比对数据是否有变更,来决定是否更新视图,最简单的方式就是通过 setInterval() ... 阅读全文 »
JS混淆 发表于 2020-07-11 | 分类于 JavaScript | 前言总结一下关于JS混淆内容。 为什么是混淆而不是加密?没有办法真正给js加密,毕竟最终js要被浏览器的JS引擎解析,这个解析的过程没办法隐蔽起来,所以JS加密的方向只有混淆而已混淆的作用? 商业利益保护,防抄袭 让代码尽量的不被分析:如锤子手机翻车事件 防止代码被篡改 代码不可读是唯一目的 混 ... 阅读全文 »
vue中央事件总线问题 发表于 2020-07-06 | 分类于 Vue , 中央事件总线 | 问题业务场景,需要在兄弟组件之间传值,选择了中央事件总线解决办法,如下 12345678// bus.jsimport Vue from 'vue';const bus = new Vue({});export { bus} 123// broth ... 阅读全文 »
JS正则总结 发表于 2020-06-19 | 分类于 JavaScript | 语法如何定义一个正则JS 中使用非常方便 直接量:let reg = /s$/ 构造函数:let reg = new RegExp('s$'); 属性: global是一个只读的布尔值,说明这个正则表达式是否带有修饰符g ignoreCase是一个只读的布尔值,说明正则表达式是 ... 阅读全文 »
JS之call,apply,bind 发表于 2020-06-05 | 分类于 JavaScript | 简易理解猫吃鱼,狗吃肉,奥特曼打小怪兽。 有天狗想吃鱼了 猫.吃鱼.call(狗,鱼) 狗就吃到鱼了 猫成精了,想打怪兽 奥特曼.打小怪兽.call(猫,小怪兽) 或者 马云.赚钱.call(我) this指向this的指向在定义时是确定不了的,只有在执行时才会确定,指向调用它的那个函数。 call ... 阅读全文 »