使用 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,但这是默认行为。
我是新手。我对 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,但这是默认行为。