javascript - 在 React 中管理大型状态树

标签 javascript reactjs

我有一些粗略形式的数据:

父->子->孙->曾孙

我为树中的每个级别创建了一个组件,顶部组件将整个树存储为状态,并通过 props 等将分支向下传递给其子组件。

由于顶层组件管理状态,因此它负责对任何子组件进行 CRUD。如果我只是想添加一个新的曾孙,我将不得不替换父组件上的整个状态树。这是一种效率极低的方法,还是 React 会计算出要重新渲染哪些组件?有没有更好或更惯用的方法来实现我的需要?

最佳答案

为此,React 支持“keyed children ”。这基本上意味着向所有子组件添加 key={someUniqueId} 属性。

“当 React 协调带 key 的子级时,它将确保任何具有 key 的子级都将被重新排序(而不是破坏)或销毁(而不是重用)。”

回答你的问题

Is this a vastly inefficient approach?

是的,如果您不为其中一个叶子的每一个小变化使用带键的子项,则整棵树将从根部向上重建。

关于javascript - 在 React 中管理大型状态树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37067323/

相关文章:

javascript - 由于引用错误,csv 似乎没有出现

javascript - 如何将 "pin"html 元素添加到父级,但防止旋转继承?

javascript - Gulp JS Build 无法按预期工作

javascript - 循环 2 下一个和上一个按钮

javascript - 是否可以将 var styles = StyleSheet.create 从 React.component 分离到不同的脚本中?

javascript - 如何在react javascript中获取自定义 header ?

javascript - jqgrid dataurl完成事件

javascript - 导入旧的 ES5 模块以在 ReactJS 组件中使用

android - React Native 调试器无法导入 bundle 脚本?

node.js - NPM/Webpack 无法正确加载 GSAP TimelineLite