是否可以优化 redux 对原子状态变化的过度渲染?
Is it possible to optimize redux excessive renderings on atomic state changes?
我正在开发一个复杂的 react
/redux
/@reduxjs/toolkit
应用程序,它有许多嵌套(彼此)反应功能组件(我正在使用钩子和我我是 redux 的新手)
我注意到 smallest/atomic 数据更新时这些嵌套组件的渲染过多。
例如,我有一个网格,其中有许多列和行。网格模型(数据)
是每一行的一种数组:
[
{rowId:'001', values:{col1Id:val1, col2Id:val2, col3Id:val3}},
{rowId:'002', values:{col1Id:val4, col2Id:val5, col3Id:val6}}
]
当我更新我的一个网格单元格值时,整个网格组件因此渲染了很多次!我正在使用的网格是第三方组件,在使用时需要更高的稳定性。由于这些多重渲染,我现在遇到了一些功能问题。
为了更好地理解 redux 行为,我做了 this codesandbox (which is based on the @reduxjs/toolkit's todo example)
编辑待办事项标签时,我还注意到整个 TodoList
也被渲染(请参阅 this screenshot 中控制台上的日志)
在我的应用程序中,我尝试使用反应 memo
钩子来减少我的网格组件的渲染次数(与 shouldComponentUpdate
反应生命周期方法相同)但它不起作用因为我的应用程序中的整个雇佣关系似乎也被渲染了(它的父级也被重新渲染)
我想知道为什么不只渲染相关组件(如果只渲染网格而不渲染其任何祖先,memo
将起作用)。如果只有一个单元格值发生变化,为什么至少只有网格组件呈现而没有其他内容?!有没有办法优化这些渲染?
是的,通过分别存储 id 数组(呈现 TodoList
和实际值(ListItem
需要)。
教程章节 Performance and Normalizing Data 深入探讨了该主题。
我正在开发一个复杂的 react
/redux
/@reduxjs/toolkit
应用程序,它有许多嵌套(彼此)反应功能组件(我正在使用钩子和我我是 redux 的新手)
我注意到 smallest/atomic 数据更新时这些嵌套组件的渲染过多。 例如,我有一个网格,其中有许多列和行。网格模型(数据) 是每一行的一种数组:
[
{rowId:'001', values:{col1Id:val1, col2Id:val2, col3Id:val3}},
{rowId:'002', values:{col1Id:val4, col2Id:val5, col3Id:val6}}
]
当我更新我的一个网格单元格值时,整个网格组件因此渲染了很多次!我正在使用的网格是第三方组件,在使用时需要更高的稳定性。由于这些多重渲染,我现在遇到了一些功能问题。
为了更好地理解 redux 行为,我做了 this codesandbox (which is based on the @reduxjs/toolkit's todo example)
编辑待办事项标签时,我还注意到整个 TodoList
也被渲染(请参阅 this screenshot 中控制台上的日志)
在我的应用程序中,我尝试使用反应 memo
钩子来减少我的网格组件的渲染次数(与 shouldComponentUpdate
反应生命周期方法相同)但它不起作用因为我的应用程序中的整个雇佣关系似乎也被渲染了(它的父级也被重新渲染)
我想知道为什么不只渲染相关组件(如果只渲染网格而不渲染其任何祖先,memo
将起作用)。如果只有一个单元格值发生变化,为什么至少只有网格组件呈现而没有其他内容?!有没有办法优化这些渲染?
是的,通过分别存储 id 数组(呈现 TodoList
和实际值(ListItem
需要)。
教程章节 Performance and Normalizing Data 深入探讨了该主题。