虚拟DOM(一)

栏目: jQuery · 发布时间: 7年前

虚拟DOM(一)

用jQuery实现

虚拟DOM(一) 虚拟DOM(一) 虚拟DOM(一)

遇到的问题

  • DOM 操作是“昂贵”的,js 运行效率高
  • 尽量减少 DOM 操作,而不是“推倒重来”
  • 项目越复杂,影响就越严重
  • vdom 即可解决这个问题

虚拟DOM(一)

三、vdom 的如何应用,核心 API 是什么

什么是 vdom

虚拟DOM(一)

介绍 snabbdom

虚拟DOM(一)

虚拟DOM(一)

介绍 snabbdom - h 函数

虚拟DOM(一)

介绍 snabbdom - patch 函数

虚拟DOM(一)

重做jQuery的demo

  • 使用 data 生成 vnode
  • 第一次渲染,将 vnode 渲染到 #container
  • 并将 vnode 缓存下来
  • 修改 data 之后,用新 data 生成 newVnode
  • vnodenewVnode 对比

虚拟DOM(一)

核心 API

h(‘<标签名>’, {…属性…}, […子元素…])
h(‘<标签名>’, {…属性…}, ‘….’)
patch(container, vnode)
patch(vnode, newVnode)

四、介绍一下 diff 算法

4.1 vdom 为何使用 diff 算法

  • DOM 操作是“昂贵”的,因此尽量减少 DOM 操作
  • 找出本次 DOM 必须更新的节点来更新,其他的不更新
  • 这个“找出”的过程,就需要 diff 算法

虚拟DOM(一)

patch(container, vnode)

虚拟DOM(一)

虚拟DOM(一)

演示过程

虚拟DOM(一)

虚拟DOM(一)

虚拟DOM(一)

虚拟DOM(一)


以上所述就是小编给大家介绍的《虚拟DOM(一)》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

A Philosophy of Software Design

A Philosophy of Software Design

John Ousterhout / Yaknyam Press / 2018-4-6 / GBP 14.21

This book addresses the topic of software design: how to decompose complex software systems into modules (such as classes and methods) that can be implemented relatively independently. The book first ......一起来看看 《A Philosophy of Software Design》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

MD5 加密
MD5 加密

MD5 加密工具