2016-07-27 104 views
1

我们正在将应用程序从asp.Net移动到React/Redux和.Net核心。应用程序非常复杂,所以我们试图让每个页面都是自己的模块。但是,我们需要在整个应用程序中访问某些组件(Modals,PDF查看器和其他专业查看器)。有没有办法从特定应用程序中的其他React项目中添加这些组件,而无需加载整个应用程序。或者,也许创建一个核心React/Redux库,在整个应用程序中?跨多个React/Redux应用程序的共享组件

感谢

注:目前,我们正在使用的WebPack,ES6,反应,终极版

+0

您希望通过此应用程序与您已构建的其他React项目共享的组件?如果是这样,您应该能够将这些特定组件添加到当前应用程序并正常导入它们。如果他们是经常重复使用的组件,那么收集它们并创建一个用于项目中的自定义库似乎是一个好主意。 – adriennetacke

+0

我们现在正在这样做,我们为组件创建了npm repo,它是单独的,并在需要时安装。 – JordanHendrix

+0

@adriennetacke你将如何从其他应用程序导入对象? – user3527318

回答

0

作为同级你modules目录,你可能有一个shared目录。在这里,通常,你会有像styles/fonts/,images/和... components/这样的目录。这里的组件可能被认为是创建你的“分子”模块的原子结构。例如,任何自定义用户界面组件(例如按钮,下拉菜单,工具提示)都在这里 - 假设您选择了MaterialUI。

然后从更大的“功能”组件中,导入这些组件并使用它们。

作为进一步的一步,您可以将所有共享组件构建为私有npm模块并以此方式实现。

由于Redux在讨论中,旨在使您的路由组件成为容器组件。换句话说,在<Route path='/something' component={ThisComponent} />,ThisComponent应该是一个生成的容器组件,通过connect()()方法。

0

我建议不要使用路由器,因为如果.net应用程序更改URL,您的应用程序很容易中断。

另一种选择是使用类似React Habitat

0

您还可以检查出Bit它可以帮助你隔离来自不同项目的具体组成部分,它们组织成一个动态库,并在多个应用程序中使用它们。我们为我们自己的React组件开发了它,并且现在已经为类似的使用案例使用了10多个月。