React项目调用API生成30分钟图表时,何时应将数据存入Redux、何时无需存储?
问题1:当前场景是否需要将数据存入Redux全局状态
完全没必要。你当前场景下数据仅在单个组件内部使用,没有跨组件共享需求,而且每次页面刷新、重新发起请求都会拉取最新的日志类数据,没有跨会话缓存复用的必要。强行存入Redux只会多写一堆action、reducer的冗余模板代码,反而增加维护成本,直接用组件内的useState或者请求库自带的状态缓存(比如useSWR、React Query的返回值)就足够支撑需求,除非你后续明确有计划要把这份30分钟数据共享给其他页面/组件使用。
问题2:判断数据存储位置的通用规则
你可以按以下优先级逐步判断:
第一步:先判断数据是否需要存入状态
只要符合以下任意一种情况,就不需要单独存储状态:
- 数据是父组件通过props传递下来的
- 数据是不会随渲染、交互变化的固定常量
- 数据可以通过现有props、其他状态计算推导出来
第二步:再判断存在组件内部还是全局状态
只要符合以下任意一种情况,就存入全局状态(Redux等),否则一律存在组件内部即可:
- 多个无关联、跨层级的组件都需要消费这份数据
- 数据需要在页面跳转、组件销毁重建后保留复用
- 数据属于全局通用的配置类、用户信息类内容
内容的提问来源于stack exchange,提问作者MD. ABU TALHA
相关产品推荐
相关产品推荐

