IVLIU / react-offscreen

react offscreen component like vue keep-alive
MIT License
107 stars 8 forks source link

页面多了会不会有性能问题 #1

Closed skyliwq closed 6 months ago

skyliwq commented 1 year ago

页面多了会不会有性能问题?

IVLIU commented 10 months ago

页面多了会不会有性能问题?

不会的,它是利用Suspense的fallback切换机制,当组件失活之后,是不会参与diff的。

IVLIU commented 10 months ago

image 可以看到当child挂起的事后,Suspense将渲染fallback,对应到这里是一个空的fragment,所以基本上是没有性能开销的 @skyliwq

cdx111 commented 9 months ago

是不是child挂起流程的时候,child的dom状态不会消失?

cdx111 commented 9 months ago

还有为什么使用stratTranstion改变状态会导致无法隐藏?

IVLIU commented 9 months ago

是不是child挂起流程的时候,child的dom状态不会消失?

是的,当children挂起时,state和ref状态不会丢失,useEffect的销毁函数也不会执行,dom会设置为display none

IVLIU commented 9 months ago

还有为什么使用stratTranstion改变状态会导致无法隐藏?

image 由于react的限制,并发模式下再次挂起不会显示回退,所以建议切换为非并发模式,另外我会新增dev环境下的警告 @cdx111