JavaScript高级面试题(5)

上节课利用snabbdom的h和patch函数修改DOM:

在这里插入图片描述
还有没截取的patch(vnode,newVnode)

第一个patch把定义的vnode赋值到container上面,填充页面,如下图:

在这里插入图片描述
第二个patch把newVnode和Vnode比较,进行diff,然后重新填充页面

1.使用snabbdom重做jQuery之前demo

在这里插入图片描述

2.diff算法

什么是diff算法
vdom为何用diff算法
diff算法的实现流程

vdom为何用diff算法

在这里插入图片描述

Diff算法-实现

主要介绍两个方法:
1.patch(container,vnode)
2.patch(vnode,newVnode)

1.pacth(container,vnode)
重点是:vnode如何生成一个DOM元素

看下面代码实现vnode生成DOM元素(伪代码):
在这里插入图片描述
上面代码就是通过vnode生成一个DOM元素,获取属性和子节点,然后对子节点进行遍历,然后返回生成的元素。

2.patch(vnode,newVnode)

在这里插入图片描述
3.总结

在这里插入图片描述
diff实现我们主要关注pathc(container,vnode)和patch(vnode,newVnode)两个函数。
第一个patch函数主要函数是createElement,第二个patch函数主要函数是updateChildren。

这章主要内容

vdom是是什么?为何会存在vdom?
vdom如何应用,核心API是什么?
介绍一下diff算法

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值