created时,可用data和prop中的数据。
computed的属性,当在mounted或者dom中使用到时,才会属性的执行代码。
最后是mouted,可使用前面的数据,并且此时才可以操作dom。
watch不会再创建阶段自动执行,除了添加立即执行这个配置项。
加载顺序:
在官方文档中,强调了computed区别于method最重要的两点
computed是属性调用,而methods是函数调用
computed带有缓存功能,而methods不是
计算属性是基于它们的依赖进行缓存的,只有在它的相关依赖发生改变时才会重新求值。
let vm = newVue({
el:'#app',
data: {
message:'我是消息,'},
methods: {
methodTest() {return this.message + '现在我用的是methods'}
},
computed: {
computedTest() {return this.message + '现在我用的是computed'}
}
})
这就意味着只要 message 还没有发生改变,多次访问 computedTest计算属性会立即返回之前的计算结果,而不必再次执行函数。
相比而言,只要发生重新渲染,method 调用总会执行该函数。
调用
{{message}}
{{methodTest}}
{{methodTest()}}
{{methodTest()}}
{{methodTest()}}
{{computedTest}}
{{computedTest}}