qian‘kun微服务配置vue3.2+ts+vite子应用教程

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: qian‘kun微服务配置vue3.2+ts+vite子应用教程

效果图:


主应用(基座)技术栈:vue2+elementUI

子应用一可视化项目技术栈:react hooks+ts+ echarts+ datav

子应用二后台项目技术栈:vue3.2+ts+vite +element-plus

f1ebb39270b14a72b21c975ebcede121.gif

前言:


写这篇文章是因为截至今日,乾坤微前端对于vue3和vite的支持还不够,加上网上乱七八糟的文章太多,误人子弟。

还有一点,vue3.2+ts+vite应该是截至今日前端最新的技术栈了。

这篇文章,只讲怎么配置子应用vue3+vite+ts,对于还不清楚从0开始配置的请看昨天写的我上一篇文章:

image.png

1.步骤


第一步,先确定index.html的id和main.js中的id是否和主应用的id一致


1ea5966a04044b828ad80169e4092a27.png

第二步,子应用下载插件


npm i @sh-winter/vite-plugin-qiankun

第三步,配置入口文件 main.js


import { createApp } from "vue";
import App from "./App.vue";
import { exportLifeCycleHooks, qiankunWindow } from "@sh-winter/vite-plugin-qiankun/dist/helper"; //+++++++++
// reset style sheet
import "@/styles/reset.scss";
// element dark(内置暗黑模式)
import "element-plus/theme-chalk/dark/css-vars.css";
// custom element dark(自定义暗黑模式)
import "@/styles/element-dark.scss";
// custom element css
import "@/styles/element.scss";
// custom directives
import directives from "@/directives/index";
// vue Router
import router from "@/routers/index";
// vue i18n
import I18n from "@/language/index";
// pinia store
import pinia from "@/store/index";
const app = createApp(App);
// 注册element Icons组件
Object.keys(Icons).forEach(key => {
  app.component(key, Icons[key as keyof typeof Icons]);
});
app.use(router).use(I18n).use(pinia).use(directives).use(ElementPlus).mount("#appVue3");
//以下++++++++++++
function render() {
  // const app = createApp(App);
  // app.mount("#appVue3");
}
exportLifeCycleHooks({
  bootstrap() {
    // do nothing.
  },
  mount() {
    render();
  },
  unmount() {}
});
if (!qiankunWindow.__POWERED_BY_QIANKUN__) {
  render();
}

第四步,配置 vite.config.js


import qiankun, { transformAssetUrl } from '@sh-winter/vite-plugin-qiankun'//+++++
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { name as packageName } from './package.json' //+++++++
export default defineConfig({
    base: `/${packageName}/`,//+++++++
  plugins: [
        vue({
            template: {
                compilerOptions: {
                    nodeTransforms: [transformAssetUrl]
                }
            }
        }),
        qiankun({ packageName })//++++++++++
    ]
})

至此完成。

解决子应用请求接口404问题


场景:

从主应用跳转到子应用后台项目,点击登录时,发现login登录接口报404错误、

原因及解决:

我发现,子应用的代理无用,于是加上下面一句话,意思是允许跨域访问子应用页面,然后子应用所有的请求都是完整的请求链接,比如:

 url = `https://mock.mengxuegu.com/mock/629d727e6163854a32e8307e` + "/geeker"

image.png

相关文章
|
24天前
|
监控 Java 持续交付
深入理解微服务架构及其在现代应用开发中的应用
深入理解微服务架构及其在现代应用开发中的应用
32 1
|
1月前
|
运维 持续交付 开发工具
深入浅出:GitOps在微服务架构中的应用
【10月更文挑战第26天】本文深入探讨了GitOps在微服务架构中的应用,介绍了其核心理念、自动化部署流程和增强的可观测性。通过实例展示了GitOps如何简化服务部署、配置管理和故障恢复,并推荐了一些实用工具和开发技巧。
|
18天前
|
Cloud Native 安全 持续交付
深入理解微服务架构及其在现代软件开发中的应用
深入理解微服务架构及其在现代软件开发中的应用
39 3
|
22天前
|
Java 网络安全 Nacos
Nacos作为流行的微服务注册与配置中心,其稳定性与易用性广受好评
Nacos作为流行的微服务注册与配置中心,其稳定性与易用性广受好评。然而,“客户端不发送心跳检测”是使用中常见的问题之一。本文详细探讨了该问题的原因及解决方法,包括检查客户端配置、网络连接、日志、版本兼容性、心跳检测策略、服务实例注册状态、重启应用及环境变量等步骤,旨在帮助开发者快速定位并解决问题,确保服务正常运行。
44 5
|
18天前
|
运维 Kubernetes Docker
深入理解容器化技术及其在微服务架构中的应用
深入理解容器化技术及其在微服务架构中的应用
40 1
|
21天前
|
监控 持续交付 API
深入理解微服务架构及其在现代软件开发中的应用
深入理解微服务架构及其在现代软件开发中的应用
37 3
|
22天前
|
监控 持续交付 API
深入理解微服务架构:从设计原则到实践应用
深入理解微服务架构:从设计原则到实践应用
|
1月前
|
监控 Go API
Go语言在微服务架构中的应用实践
在微服务架构的浪潮中,Go语言以其简洁、高效和并发处理能力脱颖而出,成为构建微服务的理想选择。本文将探讨Go语言在微服务架构中的应用实践,包括Go语言的特性如何适应微服务架构的需求,以及在实际开发中如何利用Go语言的特性来提高服务的性能和可维护性。我们将通过一个具体的案例分析,展示Go语言在微服务开发中的优势,并讨论在实际应用中可能遇到的挑战和解决方案。
|
1月前
|
Go 数据处理 API
Go语言在微服务架构中的应用与优势
本文摘要采用问答形式,以期提供更直接的信息获取方式。 Q1: 为什么选择Go语言进行微服务开发? A1: Go语言的并发模型、简洁的语法和高效的编译速度使其成为微服务架构的理想选择。 Q2: Go语言在微服务架构中有哪些优势? A2: 主要优势包括高性能、高并发处理能力、简洁的代码和强大的标准库。 Q3: 文章将如何展示Go语言在微服务中的应用? A3: 通过对比其他语言和展示Go语言在实际项目中的应用案例,来说明其在微服务架构中的优势。
|
1月前
|
监控 持续交付 Docker
Docker 容器化部署在微服务架构中的应用有哪些?
Docker 容器化部署在微服务架构中的应用有哪些?