【发布时间】:2018-12-28 08:22:15
【问题描述】:
React 文档说:
React is pretty flexible but it has a single strict rule: all React components must act like pure functions with respect to their props.
为什么会这样?
我猜如果你直接改变props的值,组件不会重新渲染,这就是为什么我们必须使用setState。但我仍然不明白这背后的原因。为什么组件就其 props 而言必须像纯函数?
【问题讨论】:
-
我认为是因为他们希望单向流避免歧义
-
道具是我们从一个组件传递到另一个组件的东西,
props有可能被传递给多个组件。如果我们允许一个组件直接更新 props,那么它将渲染传递 props 的所有子组件,这可能不是预期的,但可能在基于项目的少数场景中起作用。
标签: reactjs pure-function