react redux | 能够或者需要创建多个store吗?可以自己直接import store,用在组件上吗?

本文探讨了在Redux框架中使用单个store与多个store的优劣。单store便于数据持久化和更新,简化订阅逻辑,适用于大多数场景。多store则用于解决特定性能问题或组件级别的数据隔离,但应谨慎使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

能够或者需要创建多个store吗?

Flux模式描述了一个app中拥有多个store,每个store中存储着某个方面的数据。这将会引发一些问题,类似一个store中的数据需要等待另一个store更新完成。在redux中就不需要这样,因为已经通过把单个reducer拆分成多个更小的reducer来实现。

也存在一些情况,需要创建多个不同的redux store,但是理想模式是创建单个store。只拥有一个store,能使用redux devTools,使数据持久、更新更便捷,优化了订阅的逻辑。

使用多个store的场景包含如下:

  1. 解决在分析app时证实的因频繁更新某部分数据而导致的性能问题
  2. 分离一个在更大的应用中作为组件的redux app,你希望每个组件拥有独立的store

但是,不要优先创建新的store,特别是你有flux背景,只有在reducer解决不了你的问题时,才使用多个store。

可以自己直接import store,用在组件上吗?

Redux不推荐你直接import你的store实例。

如果你创建了一个store实例,把它从模块中导出,这会形成一个singleton。这会很难在大型应用中分离redux app 组件,或是服务端渲染,因为在每个请求中都需要产生一个store实例。

在react redux中,通过connect()函数包装的组件寻找对应的props.store。但是最好在根组件中用<Provider store={store}>包装起来,这样组件就不需要导入store模块,之后分离redux app 或者服务端渲染变得更加简单。

参考资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值