美文网首页
virtual dom

virtual dom

作者: 马甲要掉了 | 来源:发表于2020-08-25 17:35 被阅读0次

    patch(container,vnode)

    function createElement(vnode){
        var tag = vnode.tag;
        var attrs = vnode.attrs || {};
        var children = vnode.children || [];
        if(!tag){
            return null;
        }
        var elem = document.createElement(tag);
        var attrName;
        for(attrName in attrs){
            if(attrs.hasOwnProperty(attrName)){
                elem.setAttribute(attrName,attrs[attrName]);
            }
        }
        children.forEach((childVnode)=>{
            elem.appendChild(createElement(childVnode));
        })
        return elem;
    }
    

    patch(vnode,newVnode)

    function updateChildren(vnode,newVnode){
        var children = vnode.children || [];
        var newChildren = newVnode.children || [];
        children.forEach(function(child,index){
            var newChild = newChildren[index];
            if(newChild==null){
                return;
            }
            if(child.tag===newChild.tag){
                updateChildren(child,newChild);
            }else{
                repalceNode(child,newChild);
            }
        })
    }
    

    相关文章

      网友评论

          本文标题:virtual dom

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