Reactjs 与传递属性相比,useContext/useSelector是否会影响性能?

Reactjs 与传递属性相比,useContext/useSelector是否会影响性能?,reactjs,redux,Reactjs,Redux,我有一个包含几个嵌套子组件的组件;这些子组件需要有关父组件的信息,以及来自我的redux存储的数据。考虑到它们的数量,在父组件中使用一次useSelector钩子并通过属性而不是上下文传递它是否比让每个子组件使用useSelector更好?此外,通过父组件的属性传递有关父组件的信息是否比让每个子组件使用useContext更好 编辑:在测试中,通过属性时速度提高20%;我猜useSelector/useContext的声明比属性更昂贵?有人能证实这是真的吗 在内部使用useSelector钩子是

我有一个包含几个嵌套子组件的组件;这些子组件需要有关父组件的信息,以及来自我的redux存储的数据。考虑到它们的数量,在父组件中使用一次useSelector钩子并通过属性而不是上下文传递它是否比让每个子组件使用useSelector更好?此外,通过父组件的属性传递有关父组件的信息是否比让每个子组件使用useContext更好

编辑:在测试中,通过属性时速度提高20%;我猜useSelector/useContext的声明比属性更昂贵?有人能证实这是真的吗

在内部使用useSelector钩子是否会提高性能 父组件,并通过属性而不是 上下文,而不是让每个孩子使用useSelector

第二个是更好的选择。与第一个选项相比,您将减少不必要的重新渲染

在首选方案中,当父对象中的某些内容发生更改时,将触发组件的重新渲染,这意味着子对象将受到影响

将有关父组件的信息传递给 它的属性,而不是让每个孩子使用useContext

答案与上面相同。

正如您所看到的,react redux使用上下文API

就性能而言,以上所有方法都非常接近

处理性能问题的最佳方法如下:

每个函数的参数的优质代码数、每个模块的行数、圈复杂度、块嵌套、扇入/扇出系数等等。不要考虑性能问题。 分析并找出高质量代码中的瓶颈。优先考虑它们。 修复发现的问题
React Redux确实在内部使用上下文API,但是。这导致.const[contextValue,setContextValue]=useState{a:1,b:2};这只是滥用上下文API的一个例子。可以更有效地使用上下文API。如果有多个字段: