美文网首页
Vue2.0双向绑定源码分析

Vue2.0双向绑定源码分析

作者: DoEmpty | 来源:发表于2019-12-19 22:50 被阅读0次
    A:vue的双向绑定
    B:vue自定义插件
    C:vue混入
    import Vue from "vue";
    import App from "./App.vue";
    
    const testData = { testPropA: 1 }
    //A.1 在定时器中每隔两秒实现testData.testPropA的更新操作
    setInterval(()=>{
      testData.testPropA = testData.testPropA + 1;
    },2000);
    //A.2 vue通过defineReactive函数实现对数据的双向绑定  在get中收集对象属性的所有依赖,在set中通知更新
    //A.2 由此便可以实现所有testData.testPropA的调用点数据刷新
    Vue.util.defineReactive(testData, 'testPropA');
    
    //B.1 vue的插件,通过use实现插件的引入,vue会在use的时候会调用内部的install方法,install方法传入一个vue实例
    function plugin() { }
    plugin.install = vue => {
      //C.1 对vue混入一个对象,这个对象中可以有钩子函数,也可以有其他的vue属性,会影响该vue实例下的所有组件
      vue.mixin({
        //A.3 在vue的实例中混入一个gloablTest的data属性,其他页面可以进行调用,以观测是否defineReactive的双向绑定效果
        data() {
          return {
            gloablTest: testData
          }
        },
        created() {
        }
      });
    };
    //B.2 引入插件
    Vue.use(plugin);
    
    new Vue({
      render: h => h(App)
    }).$mount("#app");
    
    

    相关文章

      网友评论

          本文标题:Vue2.0双向绑定源码分析

          本文链接:https://www.haomeiwen.com/subject/zeovnctx.html