【发布时间】:2018-11-09 11:21:24
【问题描述】:
我们正在基于不同的 VueJS 应用程序开发一个更大的项目。每个 VueJS 应用程序都有自己的路由器和存储。
应用程序被访问 e。一种。像这样:
https://baseurl.com/app1/#/
https://baseurl.com/app2/#/
https://baseurl.com/app3/#/
现在我们想添加一个前页来导航到所有这些应用程序。主页将位于https://baseurl.com/
为了更好的用户体验,我们不想对每个应用程序都使用简单的重定向。目标是用户不会注意到,他正在导航到另一个 vue 应用程序。它应该感觉像是一个以 baseurl 作为入口点的大型应用程序。
这种情况有没有好的解决方案?
我们已经想到的:
- 对于前页,我们将使用 VanillaJS/JQuery 将每个应用程序动态加载到当前 DOM 中。问题:每个应用程序的路由器实例是否可用?
- 对于 pre 页面,我们将使用另一个 VueJS 应用程序并将路由器用于外部路由(这里再次显示重定向)
如果有一些关于如何将许多小型 VueJS 应用程序变成“大”的建议,我会很高兴。
将所有子应用程序开发成一个大型 VueJS 项目不是一种选择,因为所有子应用程序都应该非常灵活,并且不能“干扰”其他应用程序。
在此先感谢
【问题讨论】:
-
我的意思是,考虑到基于组件的系统、延迟加载路线、存储模块等选项,如果不把它做成一个大的,那将是愚蠢的。你可以在不让它们的情况下把它变成一个互相打扰,考虑到它必须顺利运行,我怀疑你可以用不同的项目做你想做的事
-
@Badgy 感谢您的评论。关键是已经有 6 个应用程序由不同的开发人员创建。每个开发人员只关心他自己的应用程序和他自己的构建过程。我们希望找到一种方法,让所有这些应用程序都像首页的模块一样处理。如果一个“模块”因错误而崩溃......其他应用程序应该仍然可以正常工作 - 因为它们是独立的
-
我不确定如何在不刷新页面和导入新包的情况下执行此操作,但您可以使用一些全局 javascript 来切换不同的 html。如果你不介意刷新页面,可以看一下这个例子,了解如何处理 Vue 和多个“迷你水疗中心”。 Github link
-
让我们疯狂地使用 iframe。加载时平滑淡入。
-
为什么不制作一个简单的带有
<a href>链接到应用程序的html 登录页面?如果他们共享相同的风格,用户可能不会注意到有不同的应用程序。
标签: vue.js