vue watch、computed区别
时间: 2023-11-05 21:36:35 浏览: 99
Vue中的watch和computed都是用来监听数据变化的,但是在实现上有一些区别。
1. 计算属性(computed)
计算属性是一个函数,它的返回值会被缓存,只有当它依赖的响应式数据发生改变时,它才会重新计算。也就是说,计算属性是基于它的依赖进行计算的,只有在依赖的值发生变化时才会重新计算。
computed: {
fullName() {
return this.firstName + ' ' + this.lastName
}
}
2. 观察属性(watch)
观察属性是一个函数,它接收到被监听的值和之前的值,可以执行任何逻辑,例如异步操作、请求等。它可以监听一个数据的变化,并在数据变化后执行一些操作。
watch: {
firstName(newValue, oldValue) {
// ...
}
}
区别:
1. 计算属性是基于它的依赖进行计算的,只有在依赖的值发生变化时才会重新计算;而观察属性可以监听任何数据的变化。
2. 计算属性的值会被缓存,只有在依赖的值发生改变时计算;而观察属性不会缓存值,每次都会执行回调函数。
3. 计算属性只能接收一个函数,而观察属性可以接收一个对象或者一个函数。
4. 计算属性只能用来计算一个新的值,而观察属性可以执行任何逻辑。
相关问题
vue watch和computed区别
`watch`和`computed`都是Vue.js中用于监听和计算数据变化的方法。
`watch`是一个观察者,当它所监听的数据发生变化时,会自动执行相应的回调函数。它适用于处理异步或开销较大的操作。
`computed`是一个计算属性,它是基于它所依赖的数据进行计算,并缓存结果。在数据发生变化时,Vue会自动更新计算属性的值。它适用于处理同步的计算。
总而言之,`watch`是用来监听数据变化并执行回调函数,而`computed`是用来实时计算变化并缓存结果。
vue watch和computed
有什么区别?
Vue的watch和computed都可以用来监测Vue实例中某个数据的变化。它们的区别在于:
1. watch可以监测任意一个数据的变化,包括非响应式的数据;computed只能监测响应式数据。
2. watch可以执行异步操作;computed只能同步计算。
3. watch适合处理一些数据变化后需要异步操作的场景,如请求后端接口、操作DOM等;computed适合处理一些简单的数据计算,如对几个数据作加减乘除等简单计算。
阅读全文