You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: beta/src/pages/learn/choosing-the-state-structure.md
+17-17
Original file line number
Diff line number
Diff line change
@@ -12,23 +12,23 @@ translators:
12
12
13
13
<YouWillLearn>
14
14
15
-
*何时使用单个 state 变量与多个 state 变量
15
+
*单个 state 变量 vs 多个 state 变量的使用时机
16
16
* 组织 state 时应避免的事项
17
17
* 如何解决 state 结构中的常见问题
18
18
19
19
</YouWillLearn>
20
20
21
21
## state 结构的原则 {/*principles-for-structuring-state*/}
22
22
23
-
当你写一个含有一些 state 的组件时,你必须对使用多少个 state 变量以及它们怎样的数据模型做出选择。尽管使用次优的 state 结构也有可能写出正确的程序,但有一些原则可以指导你做出更好的选择:
23
+
当你写一个含有一些 state 的组件时,你必须对使用多少个 state 变量以及它们是怎样的数据结构做出抉择。尽管使用次优的 state 结构也有可能写出正确的程序,但有一些原则可以指导你做出更好的决策:
24
24
25
25
1.**组合关联的 state。** 如果你总是同时更新两个或更多的 state 变量,可以考虑将它们合并为一个 state 变量。
26
-
2.**避免 state 之间出现矛盾。** 当 state 是由几个相互矛盾或"不一致"的 state 构建而成的时候,你就可能为此会留下隐患。尽量避免这种情况。
27
-
3.**避免冗余的 state。** 如果你能在渲染过程中从组件的 props 或其现有的 state 变量中计算出一些信息,你就不应该把这些信息放到该组件的 state 中。
28
-
4.**避免重复的 state。** 当同一数据在多个 state 变量之间或嵌套对象中重复时,会很难保持它们同步。所以尽可能减少重复。
29
-
5.**避免深度嵌套的 state。** 深层次的 state 更新起来不是很方便。如果可能的话,要更倾向于以扁平的方式构造 state。
26
+
2.**避免 state 之间出现矛盾。** 当 state 是由几个相互矛盾或“不一致”的 state 构建而成的时候,你就可能为此会留下隐患。你应当尽量避免这种情况。
27
+
3.**避免冗余的 state。** 如果你能在渲染过程中从组件的 props 或其现有的 state 变量中计算出一些信息,就不应该把这些信息放到该组件的 state 中。
28
+
4.**避免重复的 state。** 当同一数据在多个 state 变量之间或嵌套对象中重复时,会很难保持它们一致。所以你应当尽可能减少重复。
29
+
5.**避免深度嵌套的 state。** 深层次的 state 更新起来不是很方便。如果可能的话,要更倾向于以扁平的方式构建 state。
30
30
31
-
这些原则背后的目标是 *使 state 易于更新而不引入错误*。从 state 中删除冗余和重复数据有助于确保它的不同部分不会失去同步。这类似于数据库工程师可能希望将 [数据库结构“规范化”](https://docs.microsoft.com/en-us/office/troubleshoot/access/database-normalization-description),以减少出现错误的机会。用爱因斯坦的话说,**“让你的状态尽可能简单,但不要更简单。”**
31
+
这些原则背后的目标是 *使 state 易于更新而不引入错误*。从 state 中删除冗余和重复数据有助于确保它的不同部分不会失去同步。这类似于数据库工程师可能希望将 [数据库结构“规范化”](https://docs.microsoft.com/en-us/office/troubleshoot/access/database-normalization-description),以减少出现错误的机会。用爱因斯坦的话说,**“让你的状态尽可能简单,但不要太简化。”**
0 commit comments