获得徽章 17
- 【备忘API】
window.performance返回页面与性能的相关信息。
计算某段程序执行时间,可利用其中方法:performance.mark()、performance.now()赞过评论3 - 【备忘Q&A】
Q:针对数组和对象的变化,Vue 1.x & 2.x 使用 Object.defineProperty 实现响应式数据的缺点
A:
- 对于对象,不能检测对象属性的添加和删除;
- 若使用Vue.set(object, propertyName, value)将对象转换为响应式的,必须预先知道要拦截的数据的key是什么;
- 对于数组,当利用索引直接设置一个数组项或修改数组的长度时,不能检测到数组的变动;
- 若进行数组更新检测,除$set外,需利用:push()、pop()、shift()、unshift()、splice()、sort()、reverse()来触发视图更新,Vue已将这些方法进行包装重写
- 无法做到每一层对象数据都变成响应式的,因为当嵌套层级过深,数据过于复杂,存在较大的性能负担问题
链接传送门:cn.vuejs.org
cn.vuejs.org
展开赞过评论3 - 【备忘API】
window.requestAnimationFrame:浏览器在下次重绘前,调用指定的回调函数来执行动画,可提升性能
当频繁切换样式,避免对应动画可能带来的抖动模糊效果
mdn传送门:developer.mozilla.org
展开2点赞 - 【Vue备忘】
Vue 2.x会给dom元素添加__vue__属性指向当前组件,因为devtool会使用到
Vue 3.x为dom元素添加__vnode、__vueParentComponent属性,属于不可枚举的
好文传送门:zhuanlan.zhihu.com
&
输出event.target如下 展开赞过评论1 - 【备忘概念】
Tree-Shaking:编译器删除无用的js代码,最早由rollup 提出。消除无用代码使得加载的文件大小变小,整体执行时间可更短。
Dead Code:无用代码。代码不会被执行,不可到达;代码执行的结果不会被用到;代码只会影响死变量(只写不读)。
DCE:无用代码消除(dead code elimination),依赖于ES6的的module模块化特性:import & export,模块引入是静态分析的,不能运行时加载,利用这一点,可进行Tree-Shaking。
sideEffects:副作用,一个函数会、或者可能会对函数外部变量产生影响的行为。展开赞过评论2 - 【拷贝】
源对象的某属性为对象(引用类型),使用Object.assign()合并的目标对象,对该属性是浅拷贝,而Lodash 的_.defaultsDeep(),可以深拷贝的合并赞过评论3 - 【备忘API】
URL.revokeObjectURL():释放一个之前已经存在的、通过调用 URL.createObjectURL() 创建的URL对象。
如果创建的URL无需再使用,又想获得更好的性能状况,可调用。
但不一定就要主动释放,当页面关闭时,浏览器也会自动释放。展开赞过评论2
&
输出event.target如下