reactjs - 在两个 React 应用程序之间共享组件

标签 reactjs

我有两个 React 应用程序,我想将它们分开。但是,这两个应用程序的许多组件非常相似。

共享组件的最佳方法是什么?

以下是我能想到的一些方法:

  1. 复制组件,因为它们可能略有不同
  2. 从项目范围之外的文件夹导入文件

谢谢

最佳答案

如果组件“可能略有不同”,那么也许您应该复制它们。但如果你能找到一种方法来保持它们相同(并保持传入的 props 的变化),我是这样做的:

我设置了一个包含所有通用组件的单独项目。我可以通过两种方式从服务器构建系统访问这些组件:

  1. 发布公共(public)或私有(private) npm 模块,并像任何其他 npm 模块一样添加到 package.json(了解有关私有(private)模块的更多信息 here)
  2. 如果私有(private) npm 模块太复杂,但您仍想保持项目私有(private),则可以将私有(private)存储库添加到 package.json 中。您需要将 ssh key 保存在构建系统上,以便它可以登录 github 或 bitbucket(或其他)来 checkout 您的代码。

如果您选择选项 2,您可以像这样在 package.json 中包含存储库。然后,当运行 npm install 时,它将要求您提供私有(private)存储库的凭据(或者可以使用 ssh key )。

...
"dependencies": {
  ...
  "your-common-module": "git+ssh://git@bitbucket.org/path/to-repo.git#0.1.5"
}

关于reactjs - 在两个 React 应用程序之间共享组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47240166/

相关文章:

javascript - 使用 React 以类似于 Markdown 的方式向用户评论添加功能

reactjs - ListItem 未显示来自 React Native 中 "title"属性的文本

javascript - ReactJS - 有一个不拥有它的 child 的 "main"组件?

javascript - mui-datatables : Warning: Function components cannot be given refs. 尝试访问此 ref 将失败。你是想使用 React.forwardRef() 吗?

css - Styled-Components,如何动态生成css属性?

reactjs - react native - CSS :last-child without a border?

javascript - 如何在 React 中从另一个组件重新渲染一个组件

javascript - 如何在 react 中获取列表上的点击事件(自动完成)?

reactjs - 当依赖是一个函数时,如何避免 useEffect 中的无限更新

javascript - 如何在 Chai 的单元测试中使用 localStorage