data,computed,生命周期得先后执行顺序。
原理:new Vue() 初始化init()
initLifecycle(vm)initEvents(vm)initRender(vm)callHook(vm, 'beforeCreate')initInjections(vm) // resolve injections before data/propsinitState(vm) //初始化initProvide(vm) // resolve provide after data/propscallHook(vm, 'created')
initState()
if (opts.props) initProps(vm, opts.props)//初始化Props
if (opts.methods) initMethods(vm, opts.methods)//初始化methods
if (opts.data) {initData(vm)} else {observe(vm._data = {}, true /* asRootData */)}//初始化data
if (opts.computed) initComputed(vm, opts.computed)//初始化computed
Props,methods,data和computed的初始化都是在beforeCreated和created之间完成的。