【问题标题】:How to routing between packages in workspace using react-router?如何使用 react-router 在工作区中的包之间路由?
【发布时间】:2021-02-12 10:04:33
【问题描述】:

我正在为我的 monorepo 项目使用 lerna 和 yarn 工作区。我已经有一个使用 React 的包名 ProjectA。我想为这个 ProjectA 包创建一个登录页面,它也使用 React。

我希望什么时候可以部署这个项目。登录页面使用域landing.projecta.com,ProjectA 使用域projecta.com

但我不知道如何在登录页面上创建一个链接,该链接重定向到 ProjectA 的主路由。我可以为此使用 react-router 吗?

谢谢!

【问题讨论】:

    标签: reactjs react-router yarnpkg lerna


    【解决方案1】:

    在上述情况下,您应该(恕我直言)重定向到域,因为这两个系统(可能)应该是独立的,对吧?

    如果您确实共享包中的代码,您可以执行以下操作:

    使用下面的包结构,

    packages/
     - project-a
      - src/Home.jsx
     - landing
      - src/Home.jsx
    

    您可以使用 @your-scope/project-a 中的函数在 @your-scope/landing 源中创建完整的 URL。

    // landing/src/Home.jsx
    
    import {getFullAppUrl} from '@your-scope/project-a/Home.jsx'
    
    ...
    <Link to={{ pathname: getFullAppUrl() }}  target="_blank" />
    ...
    
    // project-a/src/Home.jsx
    
    export function getFullAppUrl() {
       // your code here preparing the URL
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-06-04
      • 2016-09-18
      • 2022-01-14
      • 2016-09-15
      • 1970-01-01
      • 2017-07-17
      • 2015-09-12
      相关资源
      最近更新 更多