P粉4208682942023-09-04 13:44:33
通常,useMemo
的作用是在渲染期间缓存昂贵计算的值。然而,在您的情况下,您没有任何昂贵的渲染计算;每次输入更改时,您只是渲染一个非常大的树。实际上,因为所有状态都在App
组件上,所以每次都会重新渲染整个应用。
在React中优化这个问题的方法是尽可能跳过渲染组件。为此,将页面的不相关部分拆分为不同的组件。一旦分离逻辑,用React.memo()
包装它,这是一种可以完全跳过组件渲染的不同优化技术。
对我来说,您可以做出的最明显的更改是:
TodosDatos
移出App
组件,因为它是常量,不需要在每次渲染时重新定义(这可能会占用内存)。<Table>
放入一个新的组件中,并使用React.memo()
进行记忆。确保将所有表格的依赖值传递给新组件的props。我在这里实现了这些更改:https://codesandbox.io/s/green-breeze-mmum6n?file=/src/App.js。现在您应该注意到键入几乎是即时的。您还可以在其他地方进行多次优化,以获得更好的性能。