computed 和 watch 的区别

29 阅读1分钟

computed 意为计算属性 如果一个属性是由其他属性计算而来的,这个属性依赖其他属性,是一个多对一或者一对一,一般用computed 被计算出来的属性,它会根据所依赖的数据动态显示新的计算结果, 该计算结果会被缓存起来。computed的值是会被缓存的。如果所依赖的数据发生改变时候, 就会重新计算最新的结果。 watch 意为监听属性 当一个属性发生变化时,需要执行对应的操作


不同点 computed 是可以被缓存,watch不会被缓存。 computed 不支持异步操作,watch 可以异步操作。 computed 在组件加载时会被调用,watch 可以用 immediate 来控制是否第一次渲染时调用。 computed 适合多个值影响一个值的场景,watch 适合一个值影响多个值的场景。 computed 适用于计算比较消耗性能的计算场景。当需要在数据变化时执行异步或开销较大的操作时,用 watch 是最好的。