什么是虚拟dom和diff算法 以及什么是回流和重绘

虚拟DOM是一种使用JavaScript对象来表示DOM结构的技术,用于减少真实DOM操作带来的性能开销。diff算法通过对比虚拟节点来定位并更新变化,降低DOM操作次数。回流和重绘是浏览器渲染过程中昂贵的操作,发生在DOM结构或样式改变时。使用虚拟DOM可以优化这些过程,提高应用性能。
摘要由CSDN通过智能技术生成

虚拟dom

虚拟dom其实就是用普通的js对象来描述DOM结构,因为不是真实的dom所以称之为虚拟dom

虚拟dom是相对于浏览器所渲染出来的真实dom而言的,在react,vue等技术出现之前,我们要改变页面展示的内容,只能通过遍历查询dom树的方式,找到需要修改的dom,然后修改样式行为或者结构,来达到更新视图的目的

为什么要用虚拟dom来描述真实的dom呢?

创建真实DOM成本比较高,如果用js对象来描述一个dom节点,成本比较低,另外如果频繁操作dom也是一种比较大的开销。因此建议用虚拟dom来描述真实dom

什么是diff算法?

diff算法就是进行虚拟节点对比,并返回一个patch回想,用来存储两个节点不同的地方,最后用patch记录的消息去局部更新DOM

什么是回流和重绘?

当渲染树中的一部分或者全部因为元素的尺寸、布局、隐藏等改变而需要重新构建的时候,这时候就会发生回流。

每个页面都至少发生一次回流,也就是页面第一次加载的时候。

在回流的时候,浏览器会使渲染树中受到影响的元素部分失效,并重新绘制这个部分的渲染树,完成回流以后,浏览器会重新绘制受到影响的部分元素到屏幕中,这个过程就是重绘。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值