Vue各阶段数据可使用情况 发表于 2022-11-10 分类于 Vue3源码 加载顺序: 在new Vue()时,vue\src\core\instance\index.js里面的_init()初始化各个功能 123456789function Vue (options) {if (process.env.NODE_ENV !== 'production' && !(this instanceof Vue)) { warn('Vue is a constructor and should be called with the `new` keyword')}this._init(options) //初始化各个功能} 在_init()中是这样一个执行顺序,initState是在beforeCreate和created之间 123456789initLifecycle(vm) initEvents(vm) initRender(vm) callHook(vm, 'beforeCreate') initInjections(vm) // resolve injections before data/props initState(vm) //初始化 initProvide(vm) // resolve provide after data/props callHook(vm, 'created') 在initState()中: 1234567if (opts.props) initProps(vm, opts.props)//初始化Propsif (opts.methods) initMethods(vm, opts.methods)//初始化methodsif (opts.data) { initData(vm)} else { observe(vm._data = {}, true /* asRootData */)}//初始化dataif (opts.computed) initComputed(vm, opts.computed)//初始化computed 所以Props,methods,data和computed的初始化都是在beforeCreated和created之间完成的。 本文作者: 小柒 本文链接: https://coloey.github.io/2022/11/10/Vue各阶段数据可使用情况/ 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!