为 React App 开发一个 Redux store 作为一个单独的 NPM 模块

Developing a Redux store as a seperate NPM module for a React App

React App 开发 Redux Store 作为单独的 npm 包[=50 是否可行=] 然后 import React App

中的 Store

例如: 我有一个名为 reactapp.

的假想 React 项目

我开发了一个名为 reactapp-reduxstore 的包,其中包含 Redux Store 以及 ActionsReducers

现在,我将 reactapp-reduxstore 导入我的 reactapp 项目

// other imports

import { store } from 'reactapp-reduxstore'

const ReactApp = () => (
<Provider store={store}>
    // React App Components
<Provider/>
)

// Mount ReactApp to DOM

现在,如果我想使用 redux 存储包 中的 actions,我将动作导入组件。

import { addUser } from "reactapp-reduxstore/users"

// Use the action in my Component

我只是想知道,这样的结构对于 React 项目来说有多可行,以便将来我不会 运行 进入 代码管理 个问题。

注意:为简洁起见,所有通用代码均未包含。

更新: 这是根据我对上述 redux 用法的经验更新。你永远不应该那样做。管理 redux 成为一项艰巨的工作。 IMO,只有在真正需要时才使用 redux 。否则,React 组件状态 足以管理组件的状态。

好吧,您的应用程序及其状态是紧密耦合的。在大多数情况下,当您更新一个时,您需要更新另一个。因此,每次修复错误或开发新东西时,您都必须更新和发布 2 个 NPM 包,而不是一个。

所以我想只有当我需要在多个应用程序中使用完全相同的存储、操作和缩减程序时,我才会这样做。否则,我看不到将应用程序状态移动到另一个包中有任何好处。看起来很多痛苦的额外工作并没有真正的好处。

我看到了这种代码结构的一些好处,我真的看到了一些很好的好处,如果你在 React Native 中有相同的应用程序副本,这是更好的结构之一,并且有一些真正的好处在捆绑您的项目时,如果您的 redux 数据非常特定于您的应用程序,并且如果您想要确保安全,您也可以捆绑它。而不是公开 API 调用。编码愉快!