1 .watch一个变量的时候,初始时并不会执行。需要在create的时候手动调用一次。可以在watch的时候添加immediate属性,这样初始化的时候也会触发。
2 .Attrs和Listeners。V-bind="$attrs",V-bon="listeners"来获取到没有定义的props以及方法
3 .Object.freeze:
1 .大数据的时候,如果有一些数据不需要响应式变化,既可以拆分组件,做到更好的响应 2 .还可以直接冻结一部分数据,这样不仅可以减少observer的开销,还可以减少不少内存开销 3 .this.item=object.freeze(Object.assign({},this.item))
减少全局操作
1 .组件内选择节点的时候一定要避免能使用document.querySelectore()等一系列全局选择器。应该使用this.el或者refs.xxx.$el。这样就能将操作局限在当前组件内,避免很多问题
2 .注册的全局的事件,声明之后一定要在beforeDestory或者destory声明周期注销他
3 .避免过多的全局状态,不是所有的状态都需要存在vuex中,而是应该根据业务进行合理的取舍。如果不可避免的有很多值需要存在Vuex中,减一使用动态注册的方法
小技巧
1 .所有Vue组件都是被扩展的vue实例 Vue.extend({})
2 .v-for应用在数组上,而不是对象上面。因为对象的展示遍历是无序的。无法按照自己的心愿排列。所以还是要拿数组包裹一下
3 .如果prop本身是一个对象或者数组的话,由于js对象是引用方式,无论是什么绑定方式都会是双向绑定