美文网首页
Vue.js双向绑定的实现原理

Vue.js双向绑定的实现原理

作者: Allan要做活神仙 | 来源:发表于2017-04-27 10:54 被阅读63次

先了解如何实现绑定,见http://www.jianshu.com/p/e9b81fec00b8

然后要实现


html
js

首先将该任务分成几个子任务:
   1、输入框以及文本节点与 data 中的数据绑定
   2、输入框内容变化时,data 中的数据同步变化。即 view => model 的变化。
   3、data 中的数据变化时,文本节点的内容同步变化。即 model => view 的变化。
要实现任务一,需要对 DOM 进行编译,这里有一个知识点:DocumentFragment

DocumentFragment
DocumentFragment(文档片段)可以看作节点容器,它可以包含多个子节点,当我们将它插入到 DOM 中时,只有它的子节点会插入目标节点,所以把它看作一组节点的容器。使用 DocumentFragment 处理节点,速度和性能远远优于直接操作 DOM。Vue 进行编译时,就是将挂载目标的所有子节点劫持(真的是劫持,通过 append 方法,DOM 中的节点会被自动删除)到 DocumentFragment 中,经过一番处理后,再将 DocumentFragment 整体返回插入挂载目标。

    var dom = nodeToFragment(document.getElementById('app'));
    console.log(dom);

    function nodeToFragment(node){
        var flag = document.createDocumentFragment();
        var child;
        while (child = node.firstChild){    // 给child赋值,然后判断child是否为真
            flag.append(child);             // 劫持node的所有子节点
        }
        return flag;
    }

    document.getElementById('app').appendChild(dom);
1

相关文章

  • vue双向绑定原理

    Vue.js双向绑定的实现原理

  • 深入Vue响应式原理

    1.Vue的双向数据绑定 参考 vue的双向绑定原理及实现Vue双向绑定的实现原理Object.definepro...

  • 简单实现react双向绑定

    在看Vue.js文档的时候,看到深入响应式原理这一节时,顺便想了想如何模仿Vue.js的双向绑定原理来实现reac...

  • vue.js

    Vue.js双向绑定的实现原理 Vue.js最核心的功能有两个,一是响应式的数据绑定系统,二是组件系统。本文仅探究...

  • 【转】JavaScript的观察者模式(Vue双向绑定原理)

    关于Vue实现数据双向绑定的原理,请点击:Vue实现数据双向绑定的原理原文链接:JavaScript设计模式之观察...

  • 前端理论面试--VUE

    vue双向绑定的原理(详细链接) VUE实现双向数据绑定的原理就是利用了 Object.definePropert...

  • Vue 基础

    Vue.js双向绑定的实现原理 MVC和MVVM模式 最简单的Vue应用 v-cloak v-bind 、v-on...

  • Vue实现数据双向绑定的原理

    Vue实现数据双向绑定的原理:Object.defineProperty() vue实现数据双向绑定主要是:采用数...

  • vue 双向数据绑定

    Vue实现数据双向绑定的原理:Object.defineProperty()vue实现数据双向绑定主要是:采用数据...

  • Vue.js数据双向绑定实现

    目前的几种主流前端框架中,react是单向绑定,而angular.js和vue.js是双向绑定,实现双向绑定的方法...

网友评论

      本文标题:Vue.js双向绑定的实现原理

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