Appearance
initWatch
javascript
// watch 的 key 是字符串,如果想监视内层属性,用 . 进行分隔。
// watch 的 value 可以是函数、数组、对象、字符串。
// initWatch 中遍历 vm.$options.watch,获取 handler,调用 createWatcher 生成
// user watcher,如果 handler 是数组,则遍历数组对每一项并调用 createWatcher。
export default {
watch: {
a (val, oldVal) {},
b: 'someMethod',
c: [ function foo () {}, function bar () {} ],
d: {
function foo () {},
immediate: true
}
'e.f' () {}
}
}
function initWatch(vm: Component, watch: Object) {
// 遍历 watch 对象
for (const key in watch) {
// 取出 handler
const handler = watch[key]
// 生成 user watcher
if (isArray(handler)) {
for (let i = 0; i < handler.length; i++) {
createWatcher(vm, key, handler[i])
}
} else {
createWatcher(vm, key, handler)
}
}
}