实例方法/数据
vm.$watch( expOrFn, callback, [options] )
参数:
{string | Function} expOrFn {Function | Object} callback {Object} [options] {boolean} deep {boolean} immediate
返回值:{Function} unwatch
用法: 观察Vue实例变化的一个表达式或计算属性函数。回调函数得到的参数为新值和旧值。表达式只接受监督的键路径。对于更复杂的表达式,用一个函数取代。
注意:在变异(不是替换)对象或数组时,旧值将与新值相同,因为它们的引用指向同一个对象/数组。Vue不会保留变异之前的副本
js
// 键路径
vm.$watch('a.b.c', function(new, old) {
// TODO
})
// 函数
vm.$watch(function() {
return this.a + this.b
}, function(new, old) {
// TODO
})vm.$watch返回一个取消观察函数,用来停止触发回调
js
var unwatch = vm.$watch('a', cb)
// 之后取消观察
unwatch()选项:deep
为了发现对象内部值的变化,可以在选系那个参数中指定 deep: true 注意监听数组的变动不需要这么做
js
vm.$watch('someObject', callback, {
deep: true
})
vm.someObject.nestedValue = 123 // callback is fired选项:immediate
在选项参数中指定 immediate: true 将立即以表达式的当前值触发回调
js
vm.$watch('a', callback, {
immediate: true
})
// 立即以a的当前值触发回调vm.$set(target, key, value)
参数:
{Object | Array} target {string | number} key {any} value 返回值:设置的值。
用法:
这是全局 Vue.set 的别名。
vm.$delete(target, key)
参数:
{Object | Array} target {string | number} key 用法:
这是全局 Vue.delete 的别名。
参考:Vue.delete
