为什么状态变量在 useState 中使用 const 声明?



在 React 16 的useState()hook 官方文档中,count状态及其 setter 函数声明为:

const [count, setCount] = useState(0);

在提供的示例中。

我的疑问是,为什么他们将const用于状态变量,其值可以更改?

在 React 中,你不会直接改变状态变量。

在类组件中,您永远不会执行this.state.property = 'new value'而是使用this.setState({property: 'new value'})来提供新的引用。

你不会像count = 2那样直接改变状态值,而是必须使用setCount(2)让 React 知道状态已经改变(React 也可以批量更新状态(。

如果你想更深入地挖掘,请查看官方的 Reconciliation 文档,了解 React 为什么以这种方式工作。(提示:优化(。

const [count, setCount] = useState(0);

您有状态变量的副本,即使您调用该副本setCount

副本也不会更改

这实际上不是关于 React,而是关于 Flux。 Flux 是一种涉及不可变状态存储的范例,其中操作应用于状态以将其转换为不可变状态的新实例。

相关内容

  • 没有找到相关文章

最新更新