美文网首页
virtual dom

virtual dom

作者: 风雪之隅_b6f7 | 来源:发表于2019-04-15 11:21 被阅读0次

virtual dom   --- 即虚拟dom

1.用js模拟DOM结构

2.DOM变化的对比,放在js层来做(js能实现代码逻辑)

3.提高重绘性能(js单元计算)

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <meta http-equiv="X-UA-Compatible" content="ie=edge">

    <title>Document</title>

</head>

<body>

    <div id="container"></div> 

    <button id="btn-change">change</button>

    <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>

    <script>

            var data=[

                        {

                          name:'张三',

                          age:22,

                          address:'广州'

                        },

                        {

                          name:'李四',

                          age:23,

                          address:'上海'

                        },

                        {

                          name:'王五',

                          age:25,

                          address:'北京'

                        }

                    ]

          //渲染函数

          function render(data){

              var $container=$('#container');

              //清空容器

              $container.html(''");

              //拼接

              var $table=$('<table>')

              $table.append($('<tr><td>name</td></tr><tr><td>address</td></tr>'));

              data.forEach(function(item){

                  $table.append($('<tr><td>'+item.name+'</td><td>'+item.address+'</td></tr>'))

              })

          }

          $('#btn-change').click(function(){

                data[1].age=30

                data[2].age='深圳'

                //re-render再次渲染

                render(data)

          })

          //页面加载完立刻执行(初次渲染)

          render(data)

      </script>

</body>

总结:

1.data=[]

2.render函数 

      - 找到container节点

      - 清空容器

      - 创建表格

3.执行render函数

4.点击事件 改变data再次去render(data)重绘

jquery通过实验上面的点击事件是想改变表格中的两个小元素的变化,其他不需要变化,但实际操作的是将整个table删除再去重新渲染,这很不符合预期。

vdom就可以解决这个问题,从而尽量减少DOM操作的性能

相关文章

  • virtual DOM 实现原理

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

  • 实现简单render函数

    什么是Virtual Dom React和Vue2都使用了Virtual Dom技术,Virtual Dom并不是...

  • Day7:virtual dom & MVVM

    virtual dom 什么是virtual dom 虚拟dom 用JS模拟DOM结构 DOM变化的对比,放在JS...

  • Virtual DOM

    什么是 Virtual DOM Virtual DOM(虚拟 DOM),是由普通的 JS 对象来描述 DOM 对象...

  • Javascript 简要,你一定要看看

    1.Virtual DOM Vue 和 React 都使用了 Virtual DOM,那么什么是 Virtual ...

  • 虚拟DOM

    虚拟DOM 基础概念: virtual DOM是对真实DOM的描述和映射 当Virtual DOM改变后,我们得到...

  • 虚拟DOM

    Virtual DOM Virtual DOM,是由普通的JS对象来描述DOM对象,因为不是真实的DOM对象,所以...

  • 初探Virtual dom & diff算法

    问:Virtual dom 是什么?为何会存在Virtual dom?答:用JS模拟DOM结构。原因:1.DOM操...

  • iview表格render

    关于 RenderReact 和 Vue 2 都使用了 Virtual Dom 技术,Virtual Dom 并不...

  • JavaScript虚拟DOM

    什么是Virtual DOM Virtual DOM是对DOM的抽象,本质上是JavaScript对象,这个对象就...

网友评论

      本文标题:virtual dom

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