1.背景大家好,我是外星人。说到更新,这是前端框架中老生常谈的问题。这些知识也在面试中。面试官喜欢问。那么在不同的技术框架背景下,处理更新的手段是不同的。今天我们就来探讨一下主流前端框架的批处理方式及其内部实现原理。通过今天的学习,你将获得这些内容:主流前端框架的批量更新方式。vue和react批量更新的实现。宏任务和微任务的特点。1、对于一个vue案例,我们先来思考一个问题。例如在vue的更新中。

1.背景大家好,我是外星人。说到更新,这是前端框架中老生常谈的问题。这些知识也在面试中。面试官喜欢问。那么在不同的技术框架背景下,处理更新的手段是不同的。今天我们就来探讨一下主流前端框架的批处理方式及其内部实现原理。通过今天的学习,你将获得这些内容:主流前端框架的批量更新方式。vue和react批量更新的实现。宏任务和微任务的特点。1、对于一个vue案例,我们先来思考一个问题。例如在vue的更新中。姓名:{{name}}年龄:{{age}}上面是很简单的逻辑代码,单击该按钮将触发姓名和年龄的更新。所以首先想一个问题:一般情况下,vue的数据层是通过响应式来处理的,那么比如age和name可以理解为一层属性代理,string模板中的属性(name和age)templateget会关联组件的renderingwatcher(vue3.0中的effect)。一个reassignment会触发set,然后根据responsiveness,会触发renderingwatcher重新执行,然后重新更新component和renderview。那么暴露的问题就是我们在handleClick中同时更改了name和age属性,所以一般情况下,name和age的设置会分别被触发,那么如果我们不做,那么renderingwatcher就会被执行了两次,结果组件会更新两次,但这是结果吗?结果是:Vue底层通过批处理只更新一次组件。2.一个react案例上面介绍了vue中批量更新处理的案例之后,我们再来看看react中的批量更新处理。用react实现上面的case:functionIndex(){const[age,setAge]=React.useState(0)const[name,setName]=React.useState('')return