nuxt作为主应用接入qiankun的实践(附代码)
2024-10-20 21:10:03
上半年一直在倒腾qiankun,在使用nuxtjs接入qiankun时遇到了一些坑,记录并分享出来,希望能帮助到大家。
代码地址:nuxtjs-qiankun-demo
Nuxtjs接入qiankun需要主要的事项:
- qiankun只能在客户端运行,所以需要将qiankun的逻辑放到一个只在客户端执行的plugin中:
//nuxt.config.js
plugins: [
'@/plugins/element-ui',
{
src: '@/plugins/qiankun',
ssr: false
}
],
- 可以通过自定义路由的方式添加子应用的路由:
//nuxt.config.js
router: {
extendRoutes (routes, resolve) {
routes.push({
path: '/vueSubApp',
component: resolve(__dirname, 'components/pages/VueSubApp.vue'),
children: [
{
path: '*',
component: resolve(__dirname, 'components/pages/VueSubApp.vue')
}
]
})
}
},
- nuxtjs中的路由组件是对vue-router中的封装:(最大的坑点)
//packages/vue-app/template/components/nuxt-child.js
<% if (features.transitions) { %>
return h('transition', {
props: transitionProps,
on: listeners
}, [routerView])
<% } else { %>
return routerView
<% } %>
可以看到nuxt支持配置来给路由加载过渡效果,切默认mode为out-in,但是这个动画模式会导致子应用激活时无法获取子应用加载的容器dom:
Application died in status NOT_MOUNTED: Target container with #container not existed while xxx mounting!
所以这里我们需要修改nuxt中的默认配置:
//nuxt.config.js
transition: {
name: 'page',
// in-out也可以
mode: ''
},
layoutTransition: {
name: 'layout',
// in-out也可以
mode: ''
},
最新文章
- 非关系型数据库来了,CRL快速开发框架升级到版本4
- 转:C# WinForm获取 当前执行程序路径的几种方法
- ASP.NET MVC3 中整合 NHibernate3.3、Spring.NET2.0 使用AOP执行事务处理
- PowerShell实现文件下载(类wget)
- checkbox的全选、反选(计算价格)
- 重构12-Break Dependencies(打破依赖)
- longest common str
- 怎么给当前点击的a标签添加一个样式(跳转页面后)
- 实现图标Icon+文字在div里自动中心居中(水平垂直居中)
- JAVA课程设计个人博客 学生成绩管理 201521145048 林健
- 关于sha1加密与md5加密
- ansible 使用记录
- mysql 更新语句中加判断条件
- 简单有效:解决 Excel 打开 UTF-8 编码 CSV 文件乱码的 BUG
- Django通过字段获取关联模型
- 华硕200系主板完美兼容M.2安装Win7系统
- python全栈开发day41-background、精灵图技术、定位(相、绝、固)、z-index
- 命令行Scp的使用----远程拷贝文件
- ReadTimeoutError: HTTPSConnectionPool(host=&#39;pypi.python.org&#39;, port=443): Read timed out.
- laravel5.4中{{$name}} 和 {{!! $name !!}} 的区别:后者原生输出。前者转义