为什么React Hook useState使用const而不是让
以下是使用React useState Hook的标准方法:
const [count, setCount] = useState(0);
但是,const count
显然要将此变量重新分配给其他原始值。
为什么变量没有定义为let count
?
回答:
显然将被重新分配给其他原始值
并不是的。重新呈现组件后,将再次执行该函数,从而创建新的作用域,创建新的count
变量,该变量与先前的变量无关。
例:
let _state;let _initialized = false;
function useState(initialValue) {
if (!_initialized) {
_state = initialValue;
_initialized = true;
}
return [_state, v => _state = v];
}
function Component() {
const [count, setCount] = useState(0);
console.log(count);
setCount(count + 1);
}
Component();
Component(); // in reality `setCount` somehow triggers a rerender, calling Component again
Component(); // another rerender
挂钩更为复杂,实际上并未像这样实现。这只是为了演示类似的行为。
以上是 为什么React Hook useState使用const而不是让 的全部内容, 来源链接: utcz.com/qa/425262.html