为什么React制作组件的道具和状态属性而不是渲染参数?

时间:2016-12-01 15:33:47

标签: reactjs

React是围绕不变性而设计的,所以对我来说似乎有点奇怪,它从根本上取决于Component的两个可变属性。如果他们将其实现为render(props, state),则会减少在其他函数中修改状态的诱惑,并且更加干净地适应render纯函数操作的概念。

我觉得如果我理解了设计决策,我就能更有效地使用React。

1 个答案:

答案 0 :(得分:1)

propsstate将被视为不可变。 props are read-only以及组件状态的任何更新都应使用setState完成,以避免您的更改被覆盖。

render方法不必具有需要处理持久/变化状态的纯函数的概念。

如果您希望使React组件呈现/哑/纯,则可以查看将组件抽象为有状态无状态(功能)组件。

您可以构建构建纯功能组件的应用程序,但是:

  • 您必须找到一种方法来管理状态更改以传递到您的功能组件

  • 您的应用程序非常简单,没有状态或状态随复杂逻辑而变化。