虚拟dom

157 阅读1分钟

虚拟dom就是一个描述真实domjs对象

虚拟dom真的快吗

  • 直接进行 DOM 操作永远是最快的
  • 为了让开发变得简单, 我们发明了 react vue
  • react vue 最小的单位是组件
  • 一个组件可以有很多dom元素
  • 当组件更新时, 并不需要更新所有的dom
  • 如果没有虚拟dom,
    • 组件里的所有dom都会更新
  • 如果有虚拟dom,
    • 可进行diff算法
    • diff算法, 减少了dom的更新频率
    • diff算法, 减少了dom的更新数量

跨平台

跨平台,虚拟dom不仅可以变成DOM,还可以变成小程序,IOS,安卓应用,因为虚拟dom本质上只是一个js对象

请用虚拟dom 翻译下面 JSX

<ul className="list">
    <li>JSPang</li>
    <li>Hello</li>
</ul>
let child01 = React.createElement('li', null, 'JSPang')
let child02 = React.createElement('li', null, 'Hello')
let root = React.createElement('ul', {className: 'list'}, child01, child02)
function createElement(tag, attr, ...children) {
    return {
        tag, 
        attr, 
        children
    }
}