watch - 适合监听发生变化的属性值,重在发生变化,第一次监听会返回 undefined
computed - 不进行触发条件也会监听到属性值
- 监听某个属性,被监听的属性值发生变化就会执行函数
函数执行后,可以获取到 newVal 和 oldVal
'userInfo.userType': (newVal, oldVal) {doSome()
}
- 监听整个对象,每个属性值的变化都会执行handler
属性值发生变化后,handler执行后获取的 newVal 值和 oldVal 值是一样的
userInfo: {handler(newVal, oldVal) {console.log('oldVal:', oldVal)console.log('newVal:', newVal)},immediate: true,deep: true
}
Watch
watch用于观察和监听页面上的vue实例,当你需要在数据变化响应时,执行异步操作,或高性能消耗的操作,那么watch为最佳选择
computed
可以关联多个实时计算的对象,当这些对象中的其中一个改变时都会触发这个属性
具有缓存能力,所以只有当数据再次改变时才会重新渲染,否则就会直接拿取缓存中的数据。