Javascript 我是否错误地使用了react.memo()
问题: 我正在编写一个通用的分页表组件。它由四个子组件组成,即Javascript 我是否错误地使用了react.memo(),javascript,reactjs,react-usememo,Javascript,Reactjs,React Usememo,问题: 我正在编写一个通用的分页表组件。它由四个子组件组成,即TableToolbar、TableHead、TableBody和TablePagination。在初始渲染时,这些组件会多次重新渲染。每当它们的一个同级组件更新共享父组件的状态时,它们也会不必要地重新渲染。但是,当我使用React.memo(TableToolbar)包装这些组件的导出语句时,它们只渲染一次,并且只在其道具更改时重新渲染。下面是一些代码来阐明我的意思: const PaginatedTable: React.FC&l
TableToolbar
、TableHead
、TableBody
和TablePagination
。在初始渲染时,这些组件会多次重新渲染。每当它们的一个同级组件更新共享父组件的状态时,它们也会不必要地重新渲染。但是,当我使用React.memo(TableToolbar)
包装这些组件的导出语句时,它们只渲染一次,并且只在其道具更改时重新渲染。下面是一些代码来阐明我的意思:
const PaginatedTable: React.FC<PaginatedTableProps> = (props) => {
...
return (
<>
<TableToolBar
...
/>
<Table>
<EnhancedTableHead
...
/>
<TableBody
...
/>
</Table>
<TablePagination
...
/>
</>
);
}
const PaginatedTable:React.FC=(道具)=>{
...
返回(
);
}
例如,如果TablePagination
更新任何paginateTable
状态,如果我不在导出语句上使用React.memo()
,其他三个组件也会重新呈现
问题:
我使用React.memo()
是否合理?或者具有不必要的初始渲染,并且兄弟组件的重新渲染优于React.memo()
?带来的优化权衡,如果重新渲染导致问题,则重新渲染看起来是合理的(并且看起来像主要解决方案)。