<template>
<div>
<p>使用computed {{ message }}</p>
<p>使用methods {{ message() }}</p>
</div>
</template>
<!-- 简略代码 -->
<script>
data () {
return {
message: '我是message'
}
}
computed: {
message: function () {
return this.message
}
},
methods: {
message() {
return this.message
}
},
watch: {
firstName: function (val) {
this.fullName = val ;
}
}
</script>
- 首先最明显的不同就是 methods 调用的时候要加()。
- computed 的执行基于它的依赖缓存,只有相关依赖发生变化的才会重新取值。
- 使用 methods ,在重新渲染的时候,函数总会重新调用执行,也就是说,methods是实时的,在重新渲染时,函数总会重新调用执行,不会缓存
- watch 用于观察和监听 Vue 实例,watch为一个对象,键是需要观察的表达式,值是对应回调函数。值也可以是方法名,或者包含选项的对象。