(vm)
| 4850 | |
| 4851 | //初始化状态 |
| 4852 | function initState(vm) { |
| 4853 | vm._watchers = []; //初始化观察者队列 |
| 4854 | var opts = vm.$options; //初始化参数 |
| 4855 | //判断是否有props属性,如果有则添加观察者 |
| 4856 | if (opts.props) { |
| 4857 | //初始化props 检验props 数据格式是否是规范的如果是规范的则添加到观察者队列中 |
| 4858 | initProps(vm, opts.props); |
| 4859 | } |
| 4860 | |
| 4861 | |
| 4862 | if (opts.methods) { //事件 |
| 4863 | // 初始化事件Methods 把事件 冒泡到 vm[key] 虚拟dom 最外层中 |
| 4864 | initMethods(vm, opts.methods); |
| 4865 | } |
| 4866 | if (opts.data) { //初始化数据 |
| 4867 | // 初始化数据 获取options.data 的数据 将他们添加到 监听者中 |
| 4868 | console.log(vm) |
| 4869 | |
| 4870 | initData(vm); |
| 4871 | console.log(vm) |
| 4872 | |
| 4873 | } else { |
| 4874 | console.log('vm._data') |
| 4875 | console.log(vm._data) |
| 4876 | |
| 4877 | |
| 4878 | // 判断value 是否有__ob__ 实例化 dep对象,获取dep对象 为 value添加__ob__ 属性,把vm._data添加到观察者中 返回 new Observer 实例化的对象 |
| 4879 | observe(vm._data = {}, true /* asRootData */); |
| 4880 | |
| 4881 | } |
| 4882 | if (opts.computed) { //计算属性 |
| 4883 | //初始化计算属性 并且判断属性的key 是否 在 data ,将 计算属性的key 添加入监听者中 |
| 4884 | initComputed(vm, opts.computed); |
| 4885 | } |
| 4886 | //options 中的 watch |
| 4887 | if (opts.watch && opts.watch !== nativeWatch) { |
| 4888 | //初始化Watch |
| 4889 | initWatch(vm, opts.watch); |
| 4890 | } |
| 4891 | } |
| 4892 | |
| 4893 | //初始化props 检验props 数据格式是否是规范的如果是规范的则添加到观察者队列中 |
| 4894 | function initProps(vm, propsOptions) { |
no test coverage detected