ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

03_new Vue都发生了什么

2022-04-12 01:04:17  阅读:160  来源: 互联网

标签:初始化 Vue 03 vm init new options


当我们new Vue的时候会进入Vue方法

src/core/instance/index.js

function 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挂载到Vue原型中去的地方
initMixin(Vue) stateMixin(Vue) eventsMixin(Vue) lifecycleMixin(Vue) renderMixin(Vue)

那么这个_init是什么时候定义的,在执行initMixin方法的时候定义的

init为我们做了什么
//合并选项 if (options && options._isComponent) { // optimize internal component instantiation // since dynamic options merging is pretty slow, and none of the // internal component options needs special treatment. initInternalComponent(vm, options) } else { vm.$options = mergeOptions( resolveConstructorOptions(vm.constructor), options || {}, vm ) } // 初始化生命周期 initLifecycle(vm) // 初始化事件 initEvents(vm) // 初始化render函数 initRender(vm) // 执行beforeCreate钩子 callHook(vm, 'beforeCreate') // 初始化initInject initInjections(vm) // resolve injections before // *(重要)初始化状态method props data等 initState(vm) // 初始化provide initProvide(vm) // resolve provide after data/props // 调用created钩子 callHook(vm, 'created')

 

标签:初始化,Vue,03,vm,init,new,options
来源: https://www.cnblogs.com/Mr-Hou88888/p/16133278.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有