所需E币: 0
时间: 2023-10-9 11:55
大小: 1.5KB
手写React高质量源码,迈向高阶开发React18内核探秘:手写React高质量源码迈向高阶开发batching批处理,说的是,可以将回调函数中多个setState事件合并为一次渲染,因此是异步的。解决的问题是多次同值、不同值setState,期望最后显示的是最后一次setState的结果,减少渲染。 constIndex=()=>{ const[name,setName]=useState('') const[age,setAge]=useState(0) constchange=()=>{ setName('a') setAge(1) //仅触发一次渲染,批处理,2次setState合并为一次渲染 //需需要立即重渲染,需要手动调用 //ReactDOM.flushSync(()=>{ // setName('a')//立即执行渲染 // setAge(1)//立即执行渲染 // //不会合并处理,即没有批处理,触发2次 //}); } console.log(1)//只打印一次 return( <div> <p>name:{name}</p> <p>age:{age}</p> <buttononClick={change}>更改</button> </div> ) }1.React18是什么?在我们讨论“React18有什么新功能”之前,React18是什么意思?任何18.0.0以上但不包括19.0.0的React库的稳定版本都被称为React18。React18的创建在React应用程序中引入了并发渲染。React一直在关注DOM渲染,并为开发人员提供控制和跟踪组件生命周期的工具。有了一些新功能,React18现在可以调整渲染过程,以适应客户端设备。 <!--注意:部署时,将"development.js"替换为"production.min.js"--> <scriptsrc="https://unpkg.com/react@18/umd/react.development.js"crossorigin></script> <scriptsrc="https://unpkg.com/react-dom@18/umd/react-dom.development.js"crossorigin></script> <!--加载我们的React组件--> <scriptsrc="app.js"></script></body>现在终于等到了React18,所以我打算好好看看新版本的这些特性,到底香不香