React 条件动作 - useEffect 与 if 语句
React conditional action - useEffect vs an if statement
React 相对较新,运行 进入我不确定答案的问题。如果您有条件操作,useEffect
和只有 if 语句有区别吗?
function Items() {
[setItemAdded, itemAdded] = useState(false);
if (itemAdded) {
saveData();
itemAdded = false;
}
}
对
useEffect(() => {
if (itemAdded) {
saveData();
itemAdded = false;
}, [itemAdded]);
根据我的理解,当状态更新时itemAdded
,它会重新渲染调用条件语句并执行代码的组件。
在第二种情况下,由于 itemAdded
是一个依赖项,所以只要 itemAdded
发生变化,它就会被调用。对我来说,这两种情况似乎都具有相同的效果。两者有区别吗?
是的,绝对可以,您将通过添加另一个状态并更新它来看到不同之处。
if 语句 在每个渲染器上执行,但 useEffect
仅根据其依赖项(数组中的项目)执行。
我建议使用 useEffect 而不是 if 语句
React 相对较新,运行 进入我不确定答案的问题。如果您有条件操作,useEffect
和只有 if 语句有区别吗?
function Items() {
[setItemAdded, itemAdded] = useState(false);
if (itemAdded) {
saveData();
itemAdded = false;
}
}
对
useEffect(() => {
if (itemAdded) {
saveData();
itemAdded = false;
}, [itemAdded]);
根据我的理解,当状态更新时itemAdded
,它会重新渲染调用条件语句并执行代码的组件。
在第二种情况下,由于 itemAdded
是一个依赖项,所以只要 itemAdded
发生变化,它就会被调用。对我来说,这两种情况似乎都具有相同的效果。两者有区别吗?
是的,绝对可以,您将通过添加另一个状态并更新它来看到不同之处。
if 语句 在每个渲染器上执行,但 useEffect
仅根据其依赖项(数组中的项目)执行。
我建议使用 useEffect 而不是 if 语句