computed和watch的区别是什么?

174 阅读1分钟

计算属性computed:

1.支持缓存。只有在依赖项发生变化时,计算属性才会随之变化。

2.不支持异步,当有异步操作时无效,无法监听数据的变化。

3.如果computed需要对数据进行修改,需要写get和set两个方法,当数据变化时,调用set

4.computed擅长处理的场景:一个数据受多个数据影响,例如购物车计算总价

侦听属性watch

1、不支持缓存,数据变化,直接会触发相应的操作;

2、watch支持异步;监听的函数接收两个参数,第一个参数是最新的值;第二个参数是输入之前的值;

3、immediate:组件加载立即触发回调函数执行

4、deep:true的意思就是深入监听,任何修改obj里面任何一个属性都会触发这个监听器里的 handler方法来处理逻辑

5、watch擅长处理的场景:一个数据影响多个数据,例如搜索框