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

IT技术 reactjs
2021-05-23 08:07:10

我有两个我想分开的react应用程序。但是,两个应用程序之间的许多组件非常相似。

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

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

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

谢谢

2个回答

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

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

  1. 发布公共或私有npmmodule,并package.json像任何其他 npm module一样添加在此处阅读有关私有module的更多信息
  2. 如果私有 npm module太复杂,但您仍想保持项目私有,则可以将私有存储库添加到package.json. 您需要将 ssh 密钥保存在您的构建系统上,以便它可以登录到 github 或 bitbucket(或其他)来检查您的代码。

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

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

除非您的组件是 A. 私有的或 B. 已经由其他人生产的,为什么不将它们贡献给npm存储库供其他人使用?

你可以这样做

  1. 创建用户
  2. 发布包
  3. 更新包

您可以查看特定文档@ https://docs.npmjs.com/getting-started/publishing-npm-packages