获得徽章 8
- 【备忘概念】
Tree-Shaking:编译器删除无用的js代码,最早由rollup 提出。消除无用代码使得加载的文件大小变小,整体执行时间可更短。
Dead Code:无用代码。代码不会被执行,不可到达;代码执行的结果不会被用到;代码只会影响死变量(只写不读)。
DCE:无用代码消除(dead code elimination),依赖于ES6的的module模块化特性:import & export,模块引入是静态分析的,不能运行时加载,利用这一点,可进行Tree-Shaking。
sideEffects:副作用,一个函数会、或者可能会对函数外部变量产生影响的行为。展开评论2 - 【拷贝】
源对象的某属性为对象(引用类型),使用Object.assign()合并的目标对象,对该属性是浅拷贝,而Lodash 的_.defaultsDeep(),可以深拷贝的合并评论3 - 【备忘API】
hashchange event:当页面URL的散列值(#后部分)变化时被触发
history.pushState():BOM history对象状态管理API,改变浏览器URL而不会加载新页面,不触发hashchange事件,仅调用不触发popstate事件展开评论2 - 【备忘Tool】
Handlebars:轻量的语义化模板
编译模板:Handlebars.compile(template, options)评论3 - 【备忘Q&A】
Q:nrm ls 报错 The "path" argument must be of type string. Received undefined
A:修改第17行代码:const NRMRC = path.join(process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'], '.nrmrc');展开评论3 - 【备忘Tool】
Q:nodejs的命令行携带参数,如何对其进行解析?
A:minimist,一个参数解析工具包,可解析process.argv的参数。21 - 【备忘Tip】
Vuex开启严格模式,改变状态数据,如果不是commit mutation引起的,会报错。
注意两点:
(1)只能在开发环境使用,避免发布环境下性能损失
(2)直接使用v-model也会报错,需要改写
所以,遵守改变 store 中的状态的唯一途径就是commit mutation!展开评论2
七夕快乐![[玫瑰]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_103.6c2eed8.png)
![[胜利]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_119.947368f.png)
![[ok]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_111.b8dc9e6.png)