Vue生命周期之beforeCreate ---- vue 生命周期详解

      相信大家对vue的生命周期都很了解,但是对于每个生命周期都干了些什么呢?下面主要讲在vue的beforeCreate 这个生命周期的时候都做了什么,官方说明进行了事件和什么周期的初始化。

     其实实际代码里主要做了一下四件事,在函数中 Vue.prototype._init 查看

   1.处理该实例的初始化选项---vm.$options

    2.初始化生命周期---initLifecycle

    3.初始化事件---initEvents

    4.初始化render函数---initRender

 

 

 第一步分两种情况进行处理: 一、是否是组件进行实例化,二、实例化非组件Vue对象

 亮代码,在 _init 函数中
  

Vue.prototype._init = function (options) {
  //省略部分代码

// merge options
    if (options && options._isComponent) {  // 如果是组件安装组件的方式进行组件的vm.$options属性初始化
      // 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 {
    // 不是组件 将传入的参数 options 与 构造函数上的属性options (通过全局混入定义的)进行合并 ,合并
     // 时根据是否有自定义合并策略进行合并Vue.config.optionMergeStrategies ,合并后赋值给当前实例的$options 属性
      vm.$options = mergeOptions(
        resolveConstructorOptions(vm.constructor), //返回构造函数的options属性
        options || {},
        vm
      );
    }

  

posted @ 2020-02-19 21:40  moderiona  阅读(4794)  评论(0编辑  收藏  举报