简述为什么 useState 要使用数组而不是对象 ?
useState
是 React Hooks 中的一个重要函数,它接受初始状态作为参数,并返回一个包含两个元素的数组。第一个元素是当前的状态,第二个元素是一个能够更新这个状态的函数。
useState
返回一个数组而不是对象的主要原因是,数组的解构赋值更加灵活。这样,你可以自由地命名你的状态变量和更新函数,而不是被迫使用像 this.state
和 this.setState
这样的命名。例如:
const [count, setCount] = useState(0);
在这个例子中,count
是状态变量,setCount
是更新这个状态的函数。你可以根据你的需要给它们任意命名。
如果 useState
返回一个对象,你就必须使用对象的解构赋值并且记住键的名称,这会增加记忆负担。例如,如果 useState
返回 { state, setState }
,那么你必须这样使用它:
const { state: count, setState: setCount } = useState(0);
这明显比使用数组的解构赋值复杂和冗长。所以,为了简洁和灵活,useState
选择返回一个数组而不是对象。