【发布时间】:2018-05-07 03:57:31
【问题描述】:
背景: 我面临着对工具进行现代化改造并将其转换为带有反应前端的微服务的任务。我的想法是有一个通用的顶级组件,其中包含例如包含该功能的每个微服务的导航和组件。
方法:
- 在本地捆绑组件,使其成为有效的单片前端,并且前端代码仅在存储库中分离。
我认为这将放弃不必为每次更改重新部署整个应用程序的优势
- 通过在配置文件中定义它们来延迟加载微服务中每个组件的缩小包
使用这种方法,我可以自己 webpack 每个组件并从主页异步导入它,但可能会有巨大的开销
我阅读了有关使用 react-loadable 和捆绑 react-router 或 webpack 的基于组件的拆分,但我找不到有关如何从不同的 URL 端点加载小包的信息。
问题: 是否可以自己捆绑 react 组件并从不同的 Resource-URL 导入它们,一种方法是如何实现的?(或者 React 是否适合)
【问题讨论】:
-
在我看来这是一个复杂的方法。也许您可以使用
react-router动态路由在进行服务器端渲染时停止加载所有模块,并在单独的 git 存储库中创建组件,您可以在 package.json 中链接一些 Git URL 作为依赖项。您还可以查看 lerna 以在一个 repo 中定义多个组件。最后,我认为在微服务中公开前端是一种反模式。微服务应该尽可能地愚蠢(当然不知道客户端前端)。 -
lerna 看起来很酷。我一定会检查出来的。我认为像这样拆分它们是有意义的,这样每个微服务都是自包含的,但如果它太复杂,我会坚持预先捆绑它们的方法
标签: reactjs webpack react-router microservices react-loadable