reactjs - 与传递属性相比,useContext/useSelector 会影响性能吗?
问题描述
我有一个包含多个嵌套子组件的组件;这些孩子需要有关父组件的信息,以及来自我的 redux 存储的数据。考虑到它们的数量,在父组件中使用一次 useSelector 挂钩并通过属性(而不是上下文)将其向下传递,是否比让每个子组件使用 useSelector 更好?此外,通过属性传递有关父组件的信息是否比让每个子组件都使用 useContext 更好?
编辑:在测试中,通过属性时有20%的速度提升;我的猜测是 useSelector/useContext 在其声明中比属性更昂贵?谁能证实这是真的?
解决方案
在父组件中使用一次 useSelector 挂钩并通过属性(而不是上下文)将其向下传递,是否比让每个子组件使用 useSelector 更好?
第二个是更好的选择。与第一选择相比,您将减少不必要的重新渲染。
在您的首选场景中,当父级中的某些内容发生更改时,它将触发组件的重新渲染(意味着子级将受到影响)。
通过父组件的属性传递有关父组件的信息是否比让每个子组件都使用 useContext 更好?
答案与上述相同。
推荐阅读
- c++ - 使用 OpenCV C++ RaspberryPi 的慢速 FPS
- vba - VBA:用户定义类型作为公共对象模块中的事件参数
- android - 如何防止 Android 模拟器断开代理 Wifi
- amazon-lightsail - Lightsail 自定义 DNS
- android - 如何从手机/手机传递一些信息来佩戴操作系统并将其显示在 android wear os 模拟器中?
- html - 必填字段显示占位符,而非必填字段不显示
- javascript - 这是什么 JS 语法,它是什么意思?
- php - 带有dompdf的垂直文本
- google-sheets - 如何在谷歌电子表格中的谷歌表格等填充行之间自动添加行?
- node.js - 无法通过预签名 URL 访问 Amazon S3 存储桶中的 PDF 文件