在 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 是一种涉及不可变状态存储的范例,其中操作应用于状态以将其转换为不可变状态的新实例。