使用 useState 钩子渲染

Rendering using useState hook

我是新手。我对 useState 挂钩有一些疑问。

情景 1:
考虑有 3 个自定义标签。 A、B、C。在 return();

return (
<>
<A />  
<B />  
<C />
</>
);

如果 A 的状态发生一些变化,我知道 A 会 re-render 但是 B 和 C 是否会再次渲染?
如果 B 使用状态依赖于 A 的使用状态但 C 的使用状态不依赖于任何其他状态,将会发生什么。

情景 2:
考虑两个自定义标签 - parent 和 child.

<parent>
<child/>   //some definition 
</parent>

如果 parent 的状态发生变化,它会再次呈现 child 吗?
当 child 的使用状态取决于 parent 使用状态和 child 使用状态不依赖于 parent' 使用状态时,它会改变吗?

状态更改将导致 re-render 组件及其所有 child 组件。不过,为了阐明您的情况:

场景一

what will happens if B usestate is depended on usestate of A:

如果两个状态都改变,则 both-render。如果 A 发生变化,则 B re-renders 无论如何。如果两者都没有改变,则两者都没有 re-render。如果只有 B 改变,那么只有 B re-renders.

but C's usestate doesn't depend on any other state.

如果 C 的状态正在改变,它将 re-render。

场景二

if there is change in state of parent will it render child again?

will it change in both the case when usestate of child is depended on parent usestate:

如果 parent 的状态正在改变,parent 和 child 将 re-render。

and child usestate not depended on parent' usestate.

在这种情况下,如果 parent 状态发生变化,child re-render 则不管。如果 parent 没有改变但 child 改变了,那么只有 child re-renders。如果两者都没有改变,那么 re-render.

使用 useMemo 挂钩等方法可以防止组件 re-render,但这是默认行为。