微前端-qiankun:nuxt2 接入 nuxt2
创始人
2025-05-31 13:24:11
0

一、背景

主应用:nuxt2、webpack

子应用:nuxt2、webpack

二、代码-配置主应用

2.1、安装

yarn add qiankun

2.2、/plugins/qiankun.js

export default async ({ store }) => {await store.dispatch('getMenus')
}

2.3、nuxt.config.js

export default {// Disable server-side rendering: https://go.nuxtjs.dev/ssr-modessr: false,// Global page headers: https://go.nuxtjs.dev/config-headhead: {title: 'qiankun-base-main-nuxt2',htmlAttrs: {lang: 'en'},meta: [{ charset: 'utf-8' },{ name: 'viewport', content: 'width=device-width, initial-scale=1' },{ hid: 'description', name: 'description', content: '' },{ name: 'format-detection', content: 'telephone=no' }],link: [{ rel: 'icon', type: 'image/x-icon', href: '/favicon.ico' }]},// Global CSS: https://go.nuxtjs.dev/config-csscss: ['element-ui/lib/theme-chalk/index.css'],// Plugins to run before rendering page: https://go.nuxtjs.dev/config-pluginsplugins: ['@/plugins/element-ui',{ src: '~/plugins/qiankun.js', ssr: false },],// Auto import components: https://go.nuxtjs.dev/config-componentscomponents: true,// Modules for dev and build (recommended): https://go.nuxtjs.dev/config-modulesbuildModules: [// https://go.nuxtjs.dev/eslint'@nuxtjs/eslint-module'],// Modules: https://go.nuxtjs.dev/config-modulesmodules: [// https://go.nuxtjs.dev/axios'@nuxtjs/axios'],// Axios module configuration: https://go.nuxtjs.dev/config-axiosaxios: {// Workaround to avoid enforcing hard-coded localhost:3000: https://github.com/nuxt-community/axios-module/issues/308baseURL: '/'},// Build Configuration: https://go.nuxtjs.dev/config-buildbuild: {transpile: [/^element-ui/]}
}

2.4、layouts/default.vue

2.5、store/index.js

import { Message } from 'element-ui'
import {initGlobalState
} from 'qiankun'const TYPES = {INIT_APPS: 'init_apps'
}export const state = () => ({apps: [],name: 'main',sdk: null
})export const mutations = {[TYPES.INIT_APPS] (state, apps){// 初始化全局变量const actions = initGlobalState({name: state.name})// 使用 sdk 方式进行 父子应用通信, 这里大家可以根据自己项目进行增加删除const sdk = {globalState: actions,toast: (...args) => {Message(...args)},router: {push: (...args) => {this.$router.push(...args)},replace: (...args) => {this.$router.replace(...args)},resolve: (...args) => {this.$router.resolve(...args)}},store: {dispatch: (...args) => {this.dispatch(...args)},commit: (...args) => {this.commit(...args)},state: { ...this.state }},name: state.name}// 处理 apps 列表apps = apps.map((item) => {return {...item,container: '#subapp',props: {sdk}}})// 处理路由表const routes = []apps.forEach((item, i) => {if (Array.isArray(item.activeRule)) {routes.push(...item.activeRule.map(i => ({path: `${i.slice(1)}`,name: `${item.name}${i}`,component: () => import('@/pages/spa.vue').then(m => m.default || m)})))return false}routes.push({path: `${item.activeRule.slice(1)}`,name: `${item.name}-i`,component: () => import('@/pages/spa.vue').then(m => m.default || m)})})// 动态增加路由, 这里要注意 404 页面不能直接写在 pages 中// 不然匹配的时候会根据顺序匹配到 * 就直接返回了 从而匹配不到我们后续添加的动态路由// console.log(routes)this.$router.addRoutes([].concat(...routes,{path: '404',name: 404,component: () => import('~/layouts/error.vue').then(m => m.default || m)}))state.apps = appsstate.sdk = sdk}
}export const actions = {async getMenus ({ commit }) {const { payload } = await getMenus()commit(TYPES.INIT_APPS, payload)}
}function getMenus () {return {code: 200,payload: [{name: 'subapp',container: '#subapp',activeRule: '/about',entry: '//localhost:3005', // 解决不同服务器和域名props: {msg: '我是主应用main' // 主应用向微应用传递参数}}],message: 'success'}
}

三、接入子应用

微前端-qiankun:vue3-vite 接入 nuxt2_snow@li的博客-CSDN博客

四、访问qiankun主应用,访问成功

五、欢迎交流指正,关注我,一起学习。

参考链接:

qiankun从接入到部署(nuxt篇) - 掘金

相关内容

热门资讯

和讯投顾周翔:超级主力完成出货... 当前A股市场出现了一些令人关注的现象,确实让不少投资者感到困惑和不安。今天上证50ETF成交创下了1...
业务承压、回款滞后!成都路桥2... 1月22日,成都路桥(002628)披露2025年度业绩预告,预计2025年归母净利润亏损6500万...
美股爆发,黄金直拉!特朗普:将... 1月22日晚间,美股全线走高。消息面上,美国总统特朗普最新表示,正在推进中的格陵兰岛协议将赋予美国“...
原创 楼... 作为一名长期关注中国房地产市场的观察者,我见证了无数家庭在这个市场中的起伏。扎根于地产研究的十八年经...
六大行集体公告!落实个人消费贷... 人民网北京1月22日电 (记者罗知之)近日,工商银行、农业银行、中国银行、建设银行、交通银行、邮储银...
资本密集型领域正在成为外资投资... 人民网罗马1月21日电 (记者郑彬)日前,联合国贸易和发展会议(简称:联合国贸发会议)最新发布的《全...
为会展行业注入新动能 2026... 深圳商报·读创客户端记者 刘娥 在科技变革与产业融合的双重驱动下,中国会展业正迎来前所未有的发展机遇...
原创 狂... 在各类资产起起伏伏的当下,有一个板块正在悄悄走出独立行情。近日,包括高盛、花旗在内的多家国际大行分析...
郑州机场上线“无感通关”,单件... 【大河财立方 记者 陈诗昂】“这次从韩国回来,通关流程简便了,拿到行李后,不用排队搬运过X光机,几分...
原创 印... 2025年11月,印度五大炼油企业在制裁截止日11月21日之前,大规模囤积俄罗斯石油,在12月份没有...
收评:创业板指探底回升涨超1%... 【收评:创业板指探底回升涨超1% 商业航天概念爆发】财联社1月22日电,市场午后震荡回升,三大指数集...
富国消费主题混合C基金近3年单... 近期,富国基金旗下富国消费主题混合基金的表现引起市场关注。 富国消费主题混合基金成立于2014年12...
宏利基金被曝与特斯拉存在诉讼 ... 近期,上海市高级人民法院披露的一则开庭公告显示,特斯拉(上海)有限公司已起诉宏利基金管理有限公司(下...
95亿消费电子大佬,拟“接盘”... 雷达财经出品 文|丁禹 编|孟帅 1月20日,港股上市公司 TCL电子联手索尼,抛出一则震动消费电子...
TikTok美国出售交易预计本... 据美国数字新闻媒体SEMAFOR报道,中美双方已达成协议,以美国投资者为主的财团将参与TikTok美...
金饰克价,1500元!“轻黄金... 近日,首饰黄金每克报价突破1500元引发热议。1月22日,中国证券报记者走访北京地区多家品牌金店看到...
2025年离境退税销售额同比增... 2025年,上海入境游迎来强势增长,全年累计接待入境游客创历史新高,达到936.02万人次,同比大幅...
邵东市举办“讲台育桃李,健康护... 大众卫生报·新湖南客户端1月20日讯(通讯员 曾秀丽 罗邵陵)为提升女性健康素养,强化自我保护意识,...
华翔股份大宗交易折价成交67.... 华翔股份01月22日大宗交易平台共发生4笔成交,合计成交量67.50万股,成交金额1150.88万元...
年内已经上涨37%,明早的英特... 今年以来,英特尔股价累计涨幅已达37%,1月21日收盘价报54.25美元,创2022年1月以来新高。...