1.对于任何复杂逻辑,你都应当使用计算属性。
2.计算属性是基于它们的依赖进行缓存的。
相比之下,每当触发重新渲染时,调用方法将总会再次执行函数。
3.Vue 通过 watch
选项提供了一个更通用的方法,来响应数据的变化。当需要在数据变化时执行异步或开销较大的操作时,这个方式是最有用的。
4.使用 watch
选项允许我们执行异步操作 (访问一个 API),限制我们执行该操作的频率,并在我们得到最终结果前,设置中间状态。这些都是计算属性无法做到的。
5.在 <template>
元素上使用 v-if
条件渲染分组。最终的渲染结果将不包含 <template>
元素。
6.Vue 会尽可能高效地渲染元素,通常会复用已有元素而不是从头开始渲染
7.带有 v-show
的元素始终会被渲染并保留在 DOM 中。v-show
只是简单地切换元素的 CSS 属性 display
。
v-show
不支持 <template>
元素,也不支持 v-else
。
8.v-if
有更高的切换开销,而 v-show
有更高的初始渲染开销
9.当 v-if
与 v-for
一起使用时,v-for
具有比 v-if
更高的优先级。
10.在 v-for
块中,我们拥有对父作用域属性的完全访问权限。v-for
还支持一个可选的第二个参数为当前项的索引。
用 v-for
通过一个对象的属性来迭代,提供第二个的参数为键名,第三个参数为索引
11.建议尽可能在使用 v-for
时提供 key
,除非遍历输出的 DOM 内容非常简单,或者是刻意依赖默认行为以获取性能上的提升。
12.
由于 JavaScript 的限制,Vue 不能检测以下变动的数组:
解决方案两个 :
- 当你利用索引直接设置一个项时,例如:
vm.items[indexOfItem] = newValue
// Vue.set Vue.set(vm.items, indexOfItem, newValue)
// Array.prototype.splice vm.items.splice(indexOfItem, 1, newValue)
- 当你修改数组的长度时,例如:
vm.items.length = newLength
解决方法:一个
vm.items.splice(newLength) |
13.