Skip to content

实例方法/数据

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

共 20 个模块,1301 篇 Markdown 文档。