前端单页面应用分布式部署探索

网友投稿 782 2022-05-30

公司后台Java使用的Spring Cloud的微服务框架,订单,商品,报价,每一个模块都是一个微服务,一个包,独立打包,单独部署.避免了业务代码之间的强耦合,包也变小了.这是背景.

近两天,公司项目准备重构,领导让我们调研一下将前端项目也重构成微服务模式,即,各个模块单独打包,分别部署,再推辞不掉,我开始了前端分布式的探索.

将前端分包编译,部署,首先想到的思路是使用webpack来实现.但研究了几天,看了很多webpack的配置文档,无奈,换个思路吧,

将每个模块单独编译成一个包,然后使用iframe嵌套到基础框架包里面,虽然使用iframe嵌套的方式有很多缺点,但目前也只有这么一条路行的通了.

但是这条思路有几个问题需要提前解决一下

1:外部路由定位到内部内容的问题

2:组件资源依赖,版本管理的问题

3:域名部署,iframe操作的封装

4:跨应用 跨iframe的状态管理.

接下来我一个一个来解决

在路由router.js中这写一个组件

{

path: '/iframe',

name: 'iframe',

component: () => import(/* webpackChunkName: "about" */ './views/Iframe.vue'),

children: [

{

path: '/iframe/*',

component: ()=> import('./views/OtherMain.vue'),

name: '加载外部的内容'

}

]

}

这个就是存放iframe的组件

OtherMain.vue组件中代码如下:

方法changeUrl 可以提取出来,作为一个当前路径匹配资源文件的转换器. 大致的思路就是这样,使用正则路由,搭配上路由守卫.监听组件url的改变,从而改变ifram的url

web前端 分布式

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SkyWalking 分布式系统追踪
下一篇:laravel insert 、save、update、create区别(总结二)
相关文章