繁体   English   中英

useState 和 useEffect 的区别

[英]Difference between useState and useEffect

我使用 useState 而不是 useEffect,它可以很好地显示数据(为什么?)

React.useState(() =>getMovies(), [])

注意:我添加了 console.log 并且得到了相同的结果

当 function 被传递给useState时,这是向 React 发出使用惰性初始化的信号——function 将仅在组件挂载时被调用以计算初始值。

如果可以同步计算/检索要放入 state 的值,这可能是最好的设计模式 - 它很短,不需要您稍后区分 state 值是未定义的还是填充的。

const [stateValue, setStateValue] = useState(calculateExpensiveInitialStateValue);

使用useEffect的时间是当无法同步计算要填充的值时,在这种情况下,最好的方法是同时使用useState (用于状态)和useEffect (表示您要运行 function 来检索state 值只有一次)。

虽然理论上你可以有一条线就像

React.useState(() =>getMovies(), [])

这很令人困惑,因为

  • 未使用返回的结果 state 值
  • useState不接受第二个参数依赖数组

useEffect更适合该任务,因为它没有返回值(不像useState ),而且更灵活,因为它确实接受依赖项数组。 useEffect更清楚地向代码读者指示“此回调应仅在依赖项数组更改时运行”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM