美文网首页
前端VDom和Dom之间的转换

前端VDom和Dom之间的转换

作者: _静夜听雨_ | 来源:发表于2021-11-30 15:15 被阅读0次

1、将DOM转化成树结构对象

const dom2tree = (dom) =>{
    const obj = {};
    obj.tag = dom.tagName;
    obj.children = [];
    dom.childNode.forEach(child => {
        obj.children.push(dom2tree(child));
    });
    return obj;
}

2、将树结构vnode转换为真实DOM结构

const  _render = (vnode) => {
    // 如果是数字类型转化为字符串
    if (typeof vnode === "number") {
      vnode = String(vnode);
    }
    // 字符串类型直接就是文本节点
    if (typeof vnode === "string") {
      return document.createTextNode(vnode);
    }
    // 普通DOM
    const dom = document.createElement(vnode.tag);
    if (vnode.attrs) {
      // 遍历属性
      Object.keys(vnode.attrs).forEach((key) => {
        const value = vnode.attrs[key];
        dom.setAttribute(key, value);
      });
    }
    // 子数组进行递归操作
    vnode.children.forEach((child) => dom.appendChild(_render(child)));
    return dom;
}

相关文章

  • 虚拟DOM

    virtual dom (虚拟DOM) 简称 vdom ,它是vue和react的核心。 vdom比较独立,使用也...

  • vue中的virtual DOM

    1、vdom是什么?为什么为存在vdom?(vdom = 虚拟DOM) 用js模拟dom结构 dom变化对比,放在...

  • Vue 虚拟dom & diff算法

    diff算法 vdom因为是纯粹的JS对象,所以操作它会很高效,但是vdom的变更最终会转换成DOM操作,为了实现...

  • 前端面试之虚拟 DOM

    vdom 是什么,为何会存在 vdom 什么是 vdom virtual dom, 虚拟 DOM用 JS 模拟 D...

  • vdom

    vdom是什么 virtual dom , 虚拟 DOM 用 js 模拟DOM结构 为什么会存在vdom DOM操...

  • 虚拟DOM详解

    vdom是什么?为何使用vdom? virtual dom,虚拟DOM 用JS模拟DOM结构 DOM操作非常昂贵 ...

  • 前端JavaScript高级面试技巧[2]

    第5章 虚拟 DOM vdom 是 vue 和 React 的核心 vdom 比较独立,使用也比较简单 vdom ...

  • 虚拟DOM

    翻译自该文 理解VDOM(Virtual DOM) 为什么我们要使用VDOM VDOM长什么样子 VDOM的原理 ...

  • React element tree 是什么?和 Virtual

    React 术语,React element tree 是什么?和 Virtual DOM(VDOM、虚拟 DOM...

  • 2021-01-22

    前端学习Day 1 熟悉BOM/DOM 数据类型之间的转换 数组的几种API调用 传统函数和箭头函数的区别 // ...

网友评论

      本文标题:前端VDom和Dom之间的转换

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