获得徽章 8
- 【备忘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.performance返回页面与性能的相关信息。
计算某段程序执行时间,可利用其中方法:performance.mark()、performance.now()评论3 - 【webpack】
可使用webpack 5 内置的 Asset Modules加载图片、字体资源,无需再额外配置 file-loader或url-loader13 - 【备忘Tool:localforage】
indexDB相对于localStorage,存储容量较大,但直接使用较复杂
应选择更为友好的开源库:localforage
异步离线存储,存储多种类型的数据,支持强制设置特定的驱动:IndexedDB、WebSQL、localStorage
存在降级策略:若浏览器不支持 IndexedDB 或 WebSQL,则使用 localStorage
localforage.getItem(key, successCallback)
localforage.setItem(key, value, successCallback)
localforage.removeItem(key, successCallback)
localforage.clear(successCallback)展开13 - 【小册ing】设计模式的核心思想是封装变化:将变与不变分离,确保变化的部分灵活变化,不变的部分稳定。
每一个模式描述了一个问题场景,以及该问题的解决方案的核心评论1 - 【备忘Q&A】
Q:硬编码是什么?
A:固化的代码,hardcode,指将可变变量用一个固定值来代替的方法,代码的灵活性降低,不利于维护,需避免。
传送门:www.xuebuyuan.com
my.oschina.net
blog.csdn.net
展开评论1