大家好,我是Kason。可能很多朋友没有在项目中使用过Suspense,但是Suspense是React未来发展中非常重要的一环。本文将解释Suspense对React意味着什么。欢迎加入人类优质前端框架群,放飞React的迭代历程。React从v16到v18的主要特性发生了三大变化:v16:AsyncMode(异步模式)v17:ConcurrentMode(并发模式)v18:ConcurrentRender(并发更新)要理解这三个变化的含义,需要理解React中一个很容易混淆的概念——渲染(rendering)。ClassComponent的render函数执行时调用render:classAppextendsComponent{render(){//...thisistherenderfunction}}将render的结果渲染到页面的过程称为commit.异步模式的目的是使渲染异步和可中断。并发模式的目的是让提交在用户看来是并发的。由于ConcurrentMode包含breakingchange,v18提出了ConcurrentRender来降低开发者迁移的成本。那么让commit在用户的认知中并发是什么意思呢?“并发”的含义说到并发,就不得不提到Suspense。考虑以下代码:constApp=()=>{const[count,setCount]=useState(0);useEffect(()=>{setInterval(()=>{setCount(count=>count+1);},1000);},[]);返回(<>
