vue watch、computed区别
时间: 2023-11-05 21:36:35 浏览: 96
vue中computed 和 watch的异同!
Vue中的watch和computed都是用来监听数据变化的,但是在实现上有一些区别。
1. 计算属性(computed)
计算属性是一个函数,它的返回值会被缓存,只有当它依赖的响应式数据发生改变时,它才会重新计算。也就是说,计算属性是基于它的依赖进行计算的,只有在依赖的值发生变化时才会重新计算。
computed: {
fullName() {
return this.firstName + ' ' + this.lastName
}
}
2. 观察属性(watch)
观察属性是一个函数,它接收到被监听的值和之前的值,可以执行任何逻辑,例如异步操作、请求等。它可以监听一个数据的变化,并在数据变化后执行一些操作。
watch: {
firstName(newValue, oldValue) {
// ...
}
}
区别:
1. 计算属性是基于它的依赖进行计算的,只有在依赖的值发生变化时才会重新计算;而观察属性可以监听任何数据的变化。
2. 计算属性的值会被缓存,只有在依赖的值发生改变时计算;而观察属性不会缓存值,每次都会执行回调函数。
3. 计算属性只能接收一个函数,而观察属性可以接收一个对象或者一个函数。
4. 计算属性只能用来计算一个新的值,而观察属性可以执行任何逻辑。
阅读全文