React 多人开发怎么确保性能,有没有最佳实践

103 天前
 Chuckle
一个小业务组件,随着需求迭代,越来越大,塞复杂表格、表单等等,上千行都有,导致状态一变连锁反应全都变,就算拆模块,也得 momo 、usecallback 啥的套,很容易又打破,也很麻烦。
像 data-grid 的案例都推荐用上下文去传数据了,避免小变化导致整个表格列重渲,但是在业务里用上下文多了,感觉更难维护数据流。

reference
4859 次点击
所在节点    React
37 条回复
shunia
102 天前
@shunia #20 加一句:react 或者 vue 等等几乎所有框架,都不是为了性能而生的。
kakki
102 天前
给弹窗组件一个 ref, 直接调用 ref 方法.鸡零狗碎的状态太多就很烦,能自我管理尽量自我管理.
lanten
102 天前
最佳实践是什么,是问出来的吗?这个推荐那个推荐,不如自己推荐
Gilfoyle26
102 天前
@liuidetmks #9 经典
leokun
102 天前
从业务角度来说,表单的性能高低不会有一毛钱的影响
cwwx2022
102 天前
我在网上看到了这个 https://shame-of-react.pages.dev/ ,是关于 react 的
hahaFck
102 天前
@shintendo 这样会有另外一个问题,就是弹窗关闭了,弹窗组件没有摧毁掉,在重新打开后,数据还是跟上次一样的,每次打开都是上次打开的结果,也挺烦的。
liuliancc
102 天前
@Dreamful #5 我一般父元素通过双向绑定 v-mode visible 控制,子元素 prop visible 、emit('change:visible', true/false),也不会重新渲染、丢失动画
jianv3
102 天前
虚拟列表。 几万条数据也无所谓
anivie
102 天前
@liuidetmks 真的卡的时候想去优化已经不可能了,只有重写,大部分卡的批爆的网页都是这么来的
AV1
102 天前
换个角度想,当你的数据有成千上万行时,你应该考虑提供分页、排序、搜索、筛选、摘要功能,方便用户定位到想要的数据。
Chuckle
102 天前
把 rxjs 和 context 结合起来咋样,需要暴露和传递的数据,别 props 一层层传状态,让组件订阅所需外部状态的变化,而不是从 props 中获取,感觉有空可以琢磨下
Chuckle
102 天前
@Chuckle #32 还真有现成的 https://react-rxjs.org/docs/getting-started ,确实能想到估计也有人做过了(
RedNax
102 天前
想集成 rxjs 可以看看 focal:
https://github.com/grammarly/focal
Dreamful
102 天前
@liuliancc 主要是组件加载时机,有时候不希望子组件一开始就加载,每次打开都重新加载。感觉不如父组件直接加 v-if 省事
realJamespond
101 天前
换 zustand 细粒度更新,直接子组件之间互相作用,绕过 state+context 从根组件全刷
lstmxx
101 天前
@hahaFck 写一个 reset 函数,close 的时候调用吧,我是这么做的

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

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

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

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

© 2021 V2EX