【问题标题】:What can't be done without useEffect hook?没有 useEffect 钩子不能做什么?
【发布时间】:2021-01-18 08:28:22
【问题描述】:

我阅读了有关 useEffect 的文档,并了解它如何使生活比生命周期方法更轻松。然而我想知道如果没有useEffect,什么不可能是可能的?

例如而不是(所有代码都是虚拟代码)

useEffect(networkRequest.then(update state));

我不能直接使用

// inside functional component
function App() {
  networkRequest.then(update state)
}

【问题讨论】:

  • couldn't I just use 不,你不能,因为一旦你设置了状态,函数就会被再次调用,一个新的网络请求开始,状态将被设置,循环重复.

标签: reactjs use-effect


【解决方案1】:

“让生活比生命周期方法更轻松”是什么意思? React hooks 你在功能组件中利用组件生命周期的方式。

就像基于类的组件的render生命周期方法是一个没有副作用的纯函数一样,函数的整个体也是如此零件。功能组件的主体“渲染”功能。

// inside functional component
function App() {
  networkRequest.then(update state)
}

上面写的,没有保护网络请求的副作用,也没有状态更新......它只会更新状态和重新渲染,更新状态和重新渲染,......令人作呕,或其他话,无限渲染循环。

React 钩子允许您在功能组件中利用组件生命周期。

直接回答你的问题:

但我想知道如果没有 useEffect,不可能有什么可能?

不可能触发副作用,例如任何异步网络请求、身份验证等...当组件挂载或重新渲染时,不可能调用任何特定的。当特定状态/属性值更新时,将无法运行任何特定逻辑。

【讨论】:

    猜你喜欢
    • 2019-04-02
    • 2021-01-13
    • 2014-08-13
    • 2020-09-01
    • 2020-04-23
    • 2013-04-01
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    相关资源
    最近更新 更多