【发布时间】:2021-08-28 04:24:00
【问题描述】:
我倾向于尽可能避免使用类变量,可能我 99% 的代码都是使用 state 完成的。总有一种印象,我们应该避免使用它,因为 React 仅在更改为 state 或 props 时会重新渲染 UI。
最近我的同事开始使用类变量,用于存储一些硬编码值,如下所示。我不明白为什么我们不能将这个硬编码的值存储在 state 中,尽管 value 实际上永远不会在 app.js 中更新。而且这种类型的赋值仍然有效。
this.Arr = [
{ option: 'Product'},
{ option: 'Technical'},
{ option: 'Enquiry'},
{ option: 'Report'},
];
那么,我们应该在 react native 中使用类变量吗?你在这里的支持论点是什么?
更新
经过对以下问题的进一步阅读,我得出了一个结论......
读数:
- ReactJS - What is difference between component state and class variable?
- Should a React component use (fixed) values not on state or props?
结论:
- 与往常一样,将可能发生变异的变量保留在状态变量中。
- 可以使用类变量存储硬编码值。但是,将它们移动到一个常量文件中可能是有意义的,您可以从该文件中读取所有修复值。
- 使用类变量不是 ReactJS/ReactNative 的反模式。由于该值不需要 UI 重新渲染,因此存储在类变量中不是问题。
感谢任何人进一步发表评论。谢谢。
【问题讨论】:
-
状态适用于变化的东西,或者不是绝对静态的。将不可更改的东西放入状态并没有本质上的错误,它只是没有多大意义,而且混乱的代码甚至比低效的代码更糟糕。如果我是你,我会避免它。
-
正确,这也是我的理解。所以这里的重点是混淆代码。