Vueソース学習の3:全体的なフレームワーク

1543 ワード

この1篇は実はとても水で、実質的な内容は何もなくて、ただVueのソースコードの内部のものをすべて暇にして、1つの空いた棚を出します.
私が見たVueコードは2.0.3に基づいており、現在の最高バージョンではdistから直接抽出された生成済みの完全なコードは、srcディレクトリの下のコードを使わなかったのは、es 2015が熟練していないためであり、flowなどは接触したことがないからだ.
では、次は直接コードを入れましょう.説明するのはすべて注釈の中にあります.
//     ,commonjs、amd          
//                    ,             ?
(function(global, factory) {
    typeof exports === 'object' && typeof module !== 'undefined'
        ? module.exports = factory()
        : typeof define === 'function' && define.amd
            ? define(factory)
            : (global.Vue = factory());
}(this, (function() {
    'use strict';

    function stateMixin(Vue) {}
    function lifecycleMixin(Vue) {}
    function renderMixin(Vue) {}
    function eventsMixin(Vue) {}
    
    var uid = 0;

    function initMixin(Vue) {
        Vue.prototype._init = function(options) {
            var vm = this;

            vm._uid = uid++;
            vm._isVue = true;
        };
    }
    
    function Vue$3(options) {
        //          new         ,        
        //      underscore   ,     ,   new   ,   new   
        if(!(this instanceof Vue$3)) {
            return new Vue$3(options);
        }
        this._init(options);
    }
    //            Vue$3       、  
    //              ,js             
    //    
    initMixin(Vue$3);
    //   
    stateMixin(Vue$3);
    //   
    eventsMixin(Vue$3);
    //     
    lifecycleMixin(Vue$3);
    //   
    renderMixin(Vue$3);

    return Vue$3;
})));