我有一个应用程序;菜单";。";菜单";相当复杂,用户可以打开小div来设置实时影响应用程序的参数。该应用程序的结构如下:
Parent div with multiple useState instances to set parameters
- Menu Child Div
- functions to set those state variables are all passed to this div
- parent state is altered using these
- Main div where the results are displayed
- receives the state from the parent div and displays appropriately
它的工作方式是,当用户与菜单交互时,父菜单中的状态会发生变化,然后状态变化会在道具中传递给主子菜单。这会导致性能问题,因为当菜单中发生变化时,应用程序必须重新发送所有内容,并且存在太多状态变量可能是个问题。
处理这个问题的最佳方法是什么?使用useReducer函数可能是一种选择,但我不确定单独使用它是否能解决问题。如何使主div响应菜单中的更改而不必重新绘制所有内容?
如何处理菜单和主div之间的交互,而不必重新渲染所有内容?
是否可以通过执行以下操作来解决性能问题?
Parent div does not address state
- Menu Child Div
- interacts with redux state to change options
- Main div where the results are displayed
- reads in and reacts to redux changes
如果您希望React组件不重新渲染,除非本地状态/道具发生更改,您可以考虑将React.component替换为React.PureComponent.
每当您处理组件订单之间传递的State时,您可能需要考虑管理全局存储。您可以使用诸如Redux、MobX-State-Tree或Context API之类的工具来实现这一点。如果你正在管理一个中大型项目,这一点尤其有用。
资源:
https://ozmoroz.com/2018/09/what-is-purecomponent/
这个资源有一些关于常见React工具的好信息:
https://www.reactnative.express
当然,你可能很清楚React的文档:
https://reactjs.org/docs/hooks-intro.html