基于Vue的前端微服务

1.微服务

前端微服务的架构是什么样的?我们可以先来看看后端的微服务实现。一个大的系统被切分成一个个小的模块,而且还可以独立部署,独立对外提供接口服务。大部分返回的数据是json格式。

这样的架构的好处是:某个模块的改动,不会影响(或者影响很小)其他系统模块;另一方面返回统一的数据结构,不同的客户端(pc、android、ios、html5)可以共用同一个接口;第三,微服务划分使得分布式扩展,容器化扩展更加方便,如果系统的某个模块访问量特别大,那么我们只需要对那一个微服务镜像多部署几个,就能提升性能。

 

2.前端微服务架构

说到微服务,首先想到的都是像springcloud、springboot、docker、k8s等这样的后端技术栈,而前端微服务却很少提及。

问题:

1.后端微服务返回json格式数据,每个客户端依然需要自己编写前端模板来展示数据。

2.不同的第三方系统可能会调用某个微服务,并嵌入到自己的系统中,依然需要写前端模板展示微服务接口返回的数据

 

构思:

1.能不能直接返回html模板,将微服务接口的数据展示好,直接使用

2.兼容Vue前端框架的路由

 

实现:

一、非vue第三方项目调用

直接引用编译后的js文件,可以将依赖库不打包,注意的引入方,需要有一个id与vue项目的渲染id一致,js文件加载之后,会自动加载到这个id的元素下

 

二、vue项目调用

主要思路:父框架要提供方法暴露路由,子模块获取父框架路由并注册进去

externalRoutes: [
      //外部引入的路由
      {
        path: '/external',
        redirect: '/permission/page',
        alwaysShow: true, // will always show the root menu
        name: 'external',
        url: 'http://localhost:8080/dist/column/static/js/app.bundle.js',
        description: '字段检测',
        meta: {
          title: '外部引入',
          icon: 'lock',
          roles: ['admin', 'editor'] // you can set roles in root nav
        },
        children: [
          {
            path: 'column',
            name: 'column',//name唯一,对应外部的路由
            meta: {
              title: 'column Demo',
              roles: ['admin']
            }
          },
          {
            path: 'stomp',
            name: 'StompDemo',//name唯一,对应外部的路由
            meta: {
              title: 'stomp Demo',
              roles: ['admin']
            }
          }
        ]
      }
    ]

window.addExternalRouters = function(routers){
  if(userExternalRoutes && userExternalRoutes.length>0){
    userExternalRoutes.forEach(item =>{
      item.component = Layout
    })
    routers.forEach(item => {
      insertComponent(item, userExternalRoutes)
    })

    
    for(const er of userExternalRoutes) {
      asyncRoutes.push(er)
    }
    
    resetRouter()
    router.addRoutes(asyncRoutes)
    store.dispatch('permission/generateRoutes', store.getters.roles)
  }
}

 

子模块注册


if(window.addExternalRouters){
  const exportRoutes = [
    {
      name: 'column',
      component: HelloWorld,
      description: '字段描述'
    },
    {
      name: 'StompDemo',
      component: StompDemo,
      description: 'socket长连接'
    }
  ]
  window.addExternalRouters(exportRoutes);
}

 

系统打开之后,首先要加载需要引入的前端微服务的js文件

 

 

 

 

 

 

 

 

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Vue 3前端微服务框架是一种基于Vue.js 3的前端开发框架,它旨在帮助开发者构建可扩展和可维护的微服务应用程序。该框架提供了一些核心功能和特性,使得开发者可以更轻松地将前端应用程序拆分为多个独立的微服务,并通过组合这些微服务来构建完整的应用程序。 以下是Vue 3前端微服务框架的一些特点和功能: 1. 模块化开发:框架支持将前端应用程序拆分为多个独立的模块,每个模块可以独立开发、测试和部署。这种模块化的开发方式可以提高代码的可维护性和可扩展性。 2. 组件化架构:框架采用了组件化的开发方式,开发者可以将应用程序拆分为多个可复用的组件,每个组件负责特定的功能。这种组件化的架构可以提高代码的复用性和可读性。 3. 路由管理:框架提供了路由管理功能,开发者可以通过定义路由来实现不同微服务之间的页面跳转和导航。这样可以使得应用程序具有更好的用户体验和导航功能。 4. 状态管理:框架支持状态管理,开发者可以使用状态管理库来管理应用程序的状态。这样可以使得不同微服务之间可以共享和同步状态,提高应用程序的响应性和一致性。 5. 插件系统:框架提供了插件系统,开发者可以通过使用插件来扩展框架的功能。这样可以使得开发者可以根据自己的需求来选择和集成所需的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值