美文网首页
创建虚拟 DOM

创建虚拟 DOM

作者: _zk | 来源:发表于2019-05-26 22:27 被阅读0次
        function Element(tagName, props, children) {
            this.tagName = tagName;
            this.props = props;
            this.children = children;
        }
        Element.prototype.render = function() {
            // 创建元素
            var element = document.createElement(this.tagName);
            // 获取属性
            var props = this.props;
            for (let propName in props) {
                let propValue = props[propName];
                // 挂载元素属性
                element.setAttribute(propName, propValue);
            }
            // 获取子节点
            var children = this.children || [];
            children.forEach((child) => {
                // 遍历子节点是否为文字节点
                var childElement = (child instanceof Element) ? child.render() : document.createTextNode(child);
                element.appendChild(childElement);
            });
            // 返回创建元素
            return element;
        };
        // 创建实例
        var ul = new Element(
            'ul', {
                id: 'list'
            }, [
                new Element(
                    'li', {
                        class: 'list-item'
                    }, ['item-1']
                ),
                new Element(
                    'li', {
                        class: 'list-item'
                    }, ['item-1']
                ),
                new Element(
                    'li', {
                        class: 'list-item'
                    }, ['item-1']
                ),
                new Element(
                    'li', {
                        class: 'list-item'
                    }, ['item-1']
                ),
            ]
        );
        // 创建真实 DOM
        var rootElement = ul.render();
        // 将 DOM 挂载到 body 上
        document.body.appendChild(rootElement);

相关文章

  • 2020-06-09虚拟(Dom)+Diff算发

    虚拟Dom 创建虚拟DOM(创建文件element.js>如何创建Dom以及虚拟Dom渲染真实的Dom) 主文件(...

  • React基础篇之虚拟DOM

    Hello World JS创建虚拟DOM JSX创建虚拟DOM 虚拟DOM与真实DOM 下一篇:React基础篇...

  • React 笔记

    第一个例子 虚拟DOM的两种创建方式 使用jsx创建虚拟DOM 使用js创建虚拟DOM 关于虚拟DOM 本质是Ob...

  • 虚拟dom与直接操作dom

    虚拟dom document.createDocumentFragment()创建虚拟dom,然后再将虚拟dom替...

  • Vue 基础回顾

    Vue 基础结构 h函数:创建虚拟dom render:把h函数创建的虚拟dom返回 $mount:把虚拟dom转...

  • 学习笔记(十四)Vue Virtual DOM的实现原理

    什么是虚拟DOM 虚拟DOM是一个普通的JavaScript对象,用来描述真实的DOM创建虚拟DOM的开销要比创建...

  • 虚拟dom

    vue执行 先去创建一个虚拟dom, 将生成的虚拟dom其渲染到页面。 虚拟dom是一个对象,能够表现出dom结构...

  • 创建虚拟 DOM

  • React之JSX

    什么是JSX React的核心机制之一就是虚拟DOM:可以在内存中创建虚拟的DOM元素。React利用虚拟DOM来...

  • 第八节:React组件的生命周期

    其实React组件并不是真正的DOM, 而是会生成JS对象的虚拟DOM, 虚拟DOM会经历创建,更新,删除的过程 ...

网友评论

      本文标题:创建虚拟 DOM

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