我们应该在react native中使用class变量吗?



我尽量避免使用类变量,可能99%的代码都是用state完成的。总是有一个印象,我们应该避免使用这个,因为React重新渲染UI时,只有stateprops的变化。

最近我的同事开始使用类变量,用于存储一些硬编码值像下面。我不明白为什么我们不能将这个硬编码值存储在state中,尽管值实际上从未被更新这种类型的值分配仍然有效。
this.Arr = [
{ option: 'Product'},
{ option: 'Technical'},
{ option: 'Enquiry'},
{ option: 'Report'},
];

那么,我们应该在react native中使用class变量吗?你的论据是什么?

更新从下列问题中进一步阅读后,我得出结论……

阅读:

  1. ReactJS -组件状态和类变量之间的区别是什么?
  2. React组件应该使用(固定)值而不是状态或道具吗?

结论:

  1. 像往常一样,在状态变量中保留可能发生变化的变量。
  2. 用类变量存储硬编码值是可以的。但是,将它们移动到一个常量文件中,从那里读取所有的固定值可能是有意义的。
  3. 使用类变量不是ReactJS/ReactNative的反模式。由于值不需要UI重新渲染,因此存储在类变量中不是问题。

感谢任何人进一步评论。谢谢。

如果这个变量是永远不会改变的,并且不依赖于存在于组件范围内的任何东西,我建议将它作为一个常量存储在组件之外。

如果你确实需要根据组件范围内的东西生成它,你需要将它存储为状态或类变量。

我建议你把它存储为一个状态,如果你需要在变量改变时更新你的UI(使用setState)。如果不需要,最好将其存储为类变量。原因是,如果你把它存储在一个状态中,而不需要在变量改变时更新UI,你最终会导致不必要的重新渲染,这可能会很昂贵。

而且,在状态中存储定义上不是状态的东西,在我看来,比将其单独存储为类变量更令人困惑。

顺便说一句,如果你在一个允许你从类组件转向钩子的项目中工作,我强烈建议你这样做。

最新更新