react教程,如何利用flushSync提升优先级并强制刷新?
发布于 作者:苏南大叔 来源:程序如此灵动~

本文描述一个flushSync
功能,它和createPortal
一样,存在于ReactDom
中,而不是更常见的ReactDom/client
。flushSync
可以用于强制刷新。如果你真的有这个需求的话(意思是不常见的需求),使用flushSync
可以强制把state
的变更优先显示出来,否则可能会显示不出来。常见情况下来说,是不会显示中间state
了。

苏南大叔的程序如此灵动,记录苏南大叔和计算机代码的故事。测试环境:create-react-app@5.0.1
,react@18.2.0
,react-dom@18.2.0
,node@16.14.2
。
测试代码
测试代码如下:
这里定义了两个按钮,一个执行test()
,一个执行test2()
。

ReactDOM.flushSync()
ReactDOM.flushSync()
强制提升函数体内的逻辑优先级。所以,在对比试验中,第二个按钮在控制台中输出是两次,证明被渲染了两次,其中一次是被强制渲染输出的。
注:第一个输出文字sunan
,是第一次渲染(按钮点击之前)的默认渲染。

结束语
更多react
经验文字,请点击:


