MCPcopy Index your code
hub / github.com/ygs-code/vue / initState

Function initState

vue.js:4852–4891  ·  view source on GitHub ↗
(vm)

Source from the content-addressed store, hash-verified

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) {

Callers 1

initMixinFunction · 0.85

Calls 6

initPropsFunction · 0.85
initMethodsFunction · 0.85
initDataFunction · 0.85
observeFunction · 0.85
initComputedFunction · 0.85
initWatchFunction · 0.85

Tested by

no test coverage detected