vue开发注意事项:
1、只有当实例被创建时就“已经存在”于 data 中的 property 才是响应式的。
2、如果不想同步更新到视图,使用Object.freeze()强制不更新
3、除了数据 property,Vue 实例还暴露了一些有用的实例 property 与方法。它们都有前缀 $,以便与用户定义的 property 区分开来
4、不要在选项 property 或回调上使用箭头函数,比如 created: () => console.log(this.a) 或 vm.$watch(‘a’, newValue => this.myMethod())。因为箭头函数并没有 this,this 会作为变量一直向上级词法作用域查找,直至找到为止,经常导致 Uncaught TypeError: Cannot read property of undefined 或 Uncaught TypeError: this.myMethod is not a function 之类的错误。
5、插值中使用 v-once 指令,你也能执行一次性地插值,当数据改变时,插值处的内容不会更新。
6、模板表达式都被放在沙盒中,只能访问全局变量的一个白名单,如 Math 和 Date 。你不应该在模板表达式中试图访问用户定义的全局变量。
7、动态参数指令
<a v-on:[eventName]=“doSomething”> …
<a v-bind:[attributeName]=“url”> …
⚠️1、动态参数预期会求出一个字符串,异常情况下值为 null。
这个特殊的 null 值可以被显性地用于移除绑定。任何其它非字符串类型的值都将会触发一个警告。
⚠️2、需要避免使用大写字符来命名键名,因为浏览器会把 attribute 名全部强制转为小写:
8、注意,v-show 不支持 元素,也不支持 v-else。
9、不推荐同时使用 v-if 和 v-for
10、v-for在遍历对象时,会按 Object.keys() 的结果遍历,但是不能保证它的结果在不同的 JavaScript 引擎下都一致。
11、当 Vue 正在更新使用 v-for 渲染的元素列表时,它默认使用“就地更新”的策略。如果数据项的顺序被改变,Vue 将不会移动 DOM 元素来匹配数据项的顺序,而是就地更新每个元素,并且确保它们在每个索引位置正确渲染。
参考文档:https://vuejs.bootcss.com/guide/list.html