react 组件重新渲染的问题

2023-03-02 09:25:47 +08:00
 oppddd
有一个页面, 包含 table table 有操作选项,点击后会弹窗进行操作,关闭弹窗刷新 table

一个很普通的页面

问题:

1. 如何组织弹窗的 showState ?

在弹窗组件里面管理是否 show ,决定了应该把弹窗组件放在操作拦 每一个 cell 中,这样会生成多个弹窗实例,感觉不太好

2. 弹窗应该放在什么位置?

如果放在跟 table 同级,这样频繁的点击操作拦的查看按钮,会导致 table 重新渲染

有什么最佳实践吗?
2849 次点击
所在节点    React
24 条回复
otakustay
2023-03-02 16:05:13 +08:00
把触发弹窗的 button 包个组件,里面管 show 状态,这样 table 就不会渲染了。至于多个弹窗实例,用{show && <Modal />}管呗,全局遮罩层一下,不就只有一个了么
jjwjiang
2023-03-02 16:16:45 +08:00
在 react hooks 里不应该恐惧一般情况下产生的 re-render 。整个组件级别的 re-render 依然会被 react 优化成只对弹窗部分 re-render
dsa999
2023-03-02 18:19:56 +08:00
@sjhhjx0122 嗯,不过大多数场景下 render 时传参也够用了。弹出层从交互上来看,本来就是处理额外的独立逻辑的嘛
oppddd
2023-03-07 18:55:08 +08:00
@sjhhjx0122 看了这个仓库,用着很舒服!大佬啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/920362

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX