gpt4 book ai didi

reactjs - 是否保证传递给 useEffect 的函数在调用组件后至少会被调用一次,即使在并发模式下也是如此?

转载 作者:行者123 更新时间:2023-12-03 14:22:44 26 4
gpt4 key购买 nike

当然,除非发生异常。

<小时/>

我找不到这个问题的明确答案。

在他们的reference中他们说 useSubscription 钩子(Hook)实现:

It is important not to subscribe while rendering because this can lead to memory leaks.

但尚不清楚是否可以在正文中实现不会导致内存泄漏的订阅,或者在正文中进行订阅最终吗?如果取消订阅发生在 useEffect 内部,则会导致内存泄漏。

我特别想知道这在并发模式下是否成立。

最佳答案

Is it guaranteed that the function passed to useEffect will be called at least once after the component is called, even in concurrent mode?

我认为这是无法保证的。

假设我们从没有安装您的组件的情况开始。渲染开始,并且您的组件属于需要渲染的组件,因此它被调用。但在提交之前,会出现更高优先级的更新,这会重新启动组件树一部分的渲染。在这个新的渲染中,组件的父组件决定不再需要您的组件。此渲染完成并提交,您的组件不在输出中。

在这一切开始之前它不存在,并且在提交之后它也不存在,因此它的效果不会运行。但在这个过程中它确实被调用了,所以组件体内的任何副作用都会发生。您现在已订阅了一个事件,无法取消订阅。

关于reactjs - 是否保证传递给 useEffect 的函数在调用组件后至少会被调用一次,即使在并发模式下也是如此?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60229005/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com