【问题标题】:how useEffect maintain the stateuseEffect 如何维护状态
【发布时间】:2020-09-27 23:37:01
【问题描述】:

我的问题是概念性的,那就是我们都知道使用 useEffect Hook,每次在每次渲染后调用 useEffect 时,React 都会在下一次运行效果之前清理上一次渲染中的 use Effects,并用他的新渲染再次声明 useEffect。 useEffect 如何保持之前的状态?

【问题讨论】:

  • 我不确定我是否真的理解您的问题,但如果我做得正确:看起来您正在尝试使用 useEffect 将某些状态与您获得的道具同步。我认为这是一个不好的模式,你不应该在子组件中使用状态:只计算值,如果它是一个昂贵的,那么你可以添加一个 useMemo
  • 为什么要保持之前的状态?它只是根据某些条件运行函数,你有闭包来“保存”函数逻辑中的状态。
  • 不,我没有这样做,为此我知道使用 useLayoutEffect 用于同步,但我的问题不同。我的问题是如果“react 在下次运行效果之前清理上一次渲染中的使用效果并再次声明 useEffect”,那么 React 如何保持以前的状态。例如,我给出的值计数为 0,更新计数变为 1,然后渲染 useEffect 被清理并再次声明,然后我们如何获得计数值为 1。
  • 请用你想弄清楚的例子编辑问题。
  • useEffect 与状态无关,这就是原因

标签: javascript reactjs react-hooks


【解决方案1】:

只需google it。简而言之,react 知道哪些组件正在挂载、挂载等。它会跟踪所有组件。因为它会跟踪所有数据,所以它可以为每个数据分配任意数据。这就是钩子的本质。

所有钩子本质上都是提供一种机制,允许功能组件的实例变量(某种形式的内部状态,但不是您在 react 中认为的“状态”)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-29
    • 2019-03-14
    • 2019-09-06
    相关资源
    最近更新 更多