美文网首页
Virtual-Dom

Virtual-Dom

作者: xdoer | 来源:发表于2019-05-17 11:49 被阅读0次

Virtual-Dom

virtual-dom是一种利用JavaScript构建dom的技术,主要解决了复杂应用程序的维护程度。浏览器在处理dom时,总会附加很多很多属性,这会使得每一次数据更新,渲染都会很慢。Virtual-dom利用JavaScript做了中间层,JS记录状态,将每一次状态中的变化同步到视图中。

//节点构造函数
//if条件判断调用方式
function Dom(tagName,prop,childs){
    if(!(this instanceof Dom)){
        return new Dom(tagName,prop,childs);
    }
    this.tagName = tagName ; 
    this.prop = prop ;
    this.childs = childs ;
}
 
//节点处理
Dom.prototype.render = function(){
    var domTag = document.createElement(this.tagName);
    var props = this.prop ;
    var domProp = Object.keys(props);
    domProp.forEach(function(prop){
        domTag.setAttribute(prop,props[prop]);
    });
         
    //判断子节点是文本节点还是虚拟的Dom节点
    var childs = this.childs ||[];
    childs.forEach(function(child){
        var childNode = (child instanceof Dom) ? child.render() : document.createTextNode(child);
        domTag.append(childNode);
    });
 
    return domTag;
}
 
//调用构造函数
var node = new Dom('ul',{'id':'ul'},[
      Dom('li', {'class': 'item'}, ["Item 1"]),
      Dom('li', {'class': 'item'}, ["Item 2"]),
      Dom('li', {'class': 'item'}, ["Item 3"])
    ])
     
document.body.append(node.render());

相关文章

  • Virtual-Dom

    Virtual-Dom virtual-dom是一种利用JavaScript构建dom的技术,主要解决了复杂应用程...

  • virtual DOM 实现原理

    virtual DOM 实现: virtual-dom Snabbdom 对比 数据结构virtual Node ...

  • virtual-dom

    编程中永恒不变的两大主题:效率和质量 历史背景:web开发几个阶段 石器时代web页面展示简单的静态图文信息,那个...

  • Virtual-Dom算法

    React的virtual Dom React组件挂载:JSX/TSX ==>JavaScript对象==>真实D...

  • virtual-dom & diff

    S: 实际dom树非常复杂(单个node挂载的属性巨多,200来个),没有优化策略,频繁触发重排,对性能消耗严重 ...

  • vitual-dom原理与简单实现

    前言 目前广为人知的React和Vue都采用了virtual-dom,Virtual DOM凭借其高效的diff算...

  • 虚拟dom(virtual-dom)

    介绍 一直在用Vue进行项目开发,很好奇这框架是怎么做到数据和视图之间的快速响应绑定的,因为如果是单纯的dom操作...

  • vue之virtual-dom篇

    首先理解VNode对象 一个VNode的实例对象包含了以下属性,参见源码src/vdom/vnode.js 其中几...

  • Vue组件双向绑定

    前言Vue 2.x相比较Vue 1.x而言,升级变化除了实现了Virtual-Dom以外,给使用者最大不适就是移除...

  • virtual-dom的理解与实现

    首先,webpack会接住react相关的loader对源代码进行编译,将jsx语法转成js。比如下面的例子。不过...

网友评论

      本文标题:Virtual-Dom

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