computed和watch的区别?

80 阅读1分钟

computed:

● 计算属性: 数据发生变化,重新进行计算从而得到新的数据

● 逻辑计算的时候一般使用计算属性

● 定义的时候是方法,使用的是属性

● computed内部return依赖的数据发生变化,,逻辑会进行重新计算

● computed实际只会计算1次,只要数据不变,不管使用多少次,后续的使用的是缓存

● computed不能处理异步

watch

● 进行监听,监听某一个数据如果发生变化,我们想进行逻辑的处理

● watch可以监视:props\data\computed$route

● 当监听的数据发生变化,对应的函数会重新执行

● 监视的是一个对象: 开启深度监听 deep:true

● watch内部是可以处理异步的

项目应用:

计算属性:

vuex的getter/state数据: 都映射到计算属性中使用

统计审批次数:入职/离职

收货地址: 后端返回的是多个数据

小程序: 订单金额,订单数量

watch:

父组件异步向子组件传递数据

路由变化但是组件复用了

封装的对话框组件:数据变化,需要将数据通过自定义事件传给父组件