组件状态的初始化,以及响应式的开端都在此
    这里主要初始化了 PropsMethodsDataComputedWatch

    1. export function initState (vm: Component) {
    2. // 存储组件里的所有观察者
    3. vm._watchers = []
    4. const opts = vm.$options
    5. if (opts.props) initProps(vm, opts.props)
    6. if (opts.methods) initMethods(vm, opts.methods)
    7. if (opts.data) {
    8. initData(vm)
    9. } else {
    10. observe(vm._data = {}, true /* asRootData */)
    11. }
    12. if (opts.computed) initComputed(vm, opts.computed)
    13. if (opts.watch && opts.watch !== nativeWatch) {
    14. initWatch(vm, opts.watch)
    15. }
    16. }