vue watch 和 computed的区别

88 阅读1分钟

不同点: 1.写法上的不同 computed:一定要有return watch:不一定 2.出入参上的不同 computed: 多个入参一个出参(多个参数合在一起的变化,新生成一个新的数据) watch: 单个入参多个出参(一个数据变化后,可以做一系列的操作) 3.性能上 computed: 会自动diff依赖,如果没有依赖没有变化,就直接取缓存里的数据 watch: 不会自动diff, 有变化后只能在回调里取值 4.执行时机上 computed: 一旦生成就立马会执行 watch: 首次并不默认执行,只有打开immediate才会首次执行
相同点: 1:变化都是通过Object.defineProperty的set方法去获取的 2:都是对于数据有变化时做相关操作