组件状态的初始化,以及响应式的开端都在此
这里主要初始化了 Props
、Methods
、Data
、Computed
、Watch
export function initState (vm: Component) {
// 存储组件里的所有观察者
vm._watchers = []
const opts = vm.$options
if (opts.props) initProps(vm, opts.props)
if (opts.methods) initMethods(vm, opts.methods)
if (opts.data) {
initData(vm)
} else {
observe(vm._data = {}, true /* asRootData */)
}
if (opts.computed) initComputed(vm, opts.computed)
if (opts.watch && opts.watch !== nativeWatch) {
initWatch(vm, opts.watch)
}
}