首页 > web前端 > js教程 > 正文

什么时候在 Action Creators 中访问 Redux 状态是合理的?

Patricia Arquette
发布: 2024-10-21 18:47:29
原创
602 人浏览过

When Is Accessing Redux State Within Action Creators Justified?

在 Action Creator 中访问 Redux 状态:优点和缺点

从 Action Creator 中访问 Redux 存储状态仍然是一个争论的话题

方法 1:导入 Store

import store from '../store';
export const SOME_ACTION = 'SOME_ACTION';
export function someAction() {
  return {
    type: SOME_ACTION,
    items: store.getState().otherReducer.items,
  }
}
登录后复制

虽然此方法避免了中间件,但它依赖于从模块导出的单例存储。然而,服务器渲染需要为每个请求单独存储,使得这种方法不切实际。

方法 2:使用 getState

export const SOME_ACTION = 'SOME_ACTION';
export function someAction() {
  return (dispatch, getState) => {
    const {items} = getState().otherReducer;

    dispatch(anotherAction(items));
  }
}
登录后复制

这种方法需要使用 Redux Thunk中间件,但允许更大的灵活性,在客户端和服务器上无缝工作。

Redux 贡献者的意见

Redux 贡献者对此事的看法各不相同:

  • Dan Abramov 不鼓励在动作创建者中访问状态,认为它会掩盖更改历史并阻碍调试。
  • 另一方面,Mark Erikson 鼓励在 thunk 动作创建者中使用 getState,并引用其预期目的.

结论

最终,访问操作创建者中的状态的决定取决于应用程序的特定需求。如果需要最小的操作负载,避免 getState 可能更好。但是,如果用例证明是合理的,则访问 thunk 中的状态可以提供更大的灵活性和服务器端兼容性。

以上是什么时候在 Action Creators 中访问 Redux 状态是合理的?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!