当前位置: 首页 > wzjs >正文

顺义做网站的厂家百度极速版客服电话

顺义做网站的厂家,百度极速版客服电话,郫县网站制作,做网站的宣传单素材qiankun微前端任意位置子应用 主项目1、安装qiankun2、引入注册3、路由创建4、路由守卫 二、子项目1、安装sh-winter/vite-plugin-qiankun2、main.js配置3、vite.config.js配置 三、问题解决 主项目 1、安装qiankun npm i qiankun -S2、引入注册 创建存放子应用页面 //whpv…

qiankun微前端任意位置子应用

  • 主项目
    • 1、安装qiankun
    • 2、引入注册
    • 3、路由创建
    • 4、路由守卫
  • 二、子项目
    • 1、安装@sh-winter/vite-plugin-qiankun
    • 2、main.js配置
    • 3、vite.config.js配置
  • 三、问题解决

主项目

1、安装qiankun

npm i qiankun -S

2、引入注册

创建存放子应用页面

//whpvue.vue文件
<template><div style="height: 800px;"><div id="whpvue">该项目未启动,请联系管理员!</div></div>
</template>
<script setup lang="ts">
import { loadMicroApp } from 'qiankun';
import { onMounted } from 'vue';
onMounted(() => {let loadAppRef: any = null;console.log('loadApp:', loadAppRef);if (loadAppRef?.current) {//加上判断,避免多次创建loadAppRef.current.unmount();}let app = {name: 'whpvue', //子项目名称entry: 'http://localhost:81/whpvue', // 子项目地址container: '#whpvue', // 在主项目中配置子项目将要显示的位置节点activeRule: '/whpvue', //激活规则,可以通过设置不同的路由进行激活props: {mainAppMethod: (params) => {console.log('主应用方法被调用', params);},refreshPage() {//子应用回到主应用时需要用到更新路由的方法window.location.href = '/';}} //传参       //子项目 主项目传参的通道};loadAppRef.current = loadMicroApp(app);
});
</script>

3、路由创建

在主应用中需要对子应用的路由进行配置

 // 子应用配置{path: '/whpvue/index',component: () => import('@/views/whpvue.vue'),hidden: true},//当在子应用中刷新页面的时候会重定向到子应用页面,这个很关键{path: '/whpvue/:pathMatch(.*)*',component: () => import('@/views/whpvue.vue'),hidden: true},

4、路由守卫

这个也很关键

//main.ts
router.beforeEach((to, from: any, next) => {console.log(to, 40);if (Object.keys(from).includes('href') && from?.href.indexOf('/whpvue') > -1 && to.name == 'Index') {// 从子应用过来的// 手动调用返回方法吧(window as any).backMain();}next();
});

二、子项目

子项目往往都是可以独立运行的,所以动的越少越好

1、安装@sh-winter/vite-plugin-qiankun

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

2、main.js配置

  • Vue3.x
import './assets/main.css'
import { createApp } from 'vue'
import App from './App.vue'import { exportLifeCycleHooks, qiankunWindow } from '@sh-winter/vite-plugin-qiankun/dist/helper'
function render() {const app = createApp(App)app.mount('#app1') //此处的id和html中一致,最好不要与主项目的一致,以免冲突
}
exportLifeCycleHooks({bootstrap() {// do nothing.},mount(props) {render(props.container);},unmount() {app?.unmount();}
})
if (!qiankunWindow.__POWERED_BY_QIANKUN__) {render();
}

3、vite.config.js配置

  • Vue3.x
import {qiankunPlugin, transformAssetUrl } from '@sh-winter/vite-plugin-qiankun'
import { name as packageName } from './package.json'
export default defineConfig({base: `/${packageName}/`,plugins: [vue({template: {compilerOptions: {nodeTransforms: [transformAssetUrl]}}}),qiankunPlugin({ packageName })  //这里要看.env.development中的配置],resolve: {alias: {'@': fileURLToPath(new URL('./src', import.meta.url))}},})

三、问题解决

1、可能出现报错信息:
在这里插入图片描述
问题分析:一般实在网络较慢的时候出现,意思就是还没有加载好没法显示
问题解决:使用v-if绑定子项目显示的位置,在mounted后进行显示即可
2、路由配置一定要注意,如果页面加载有问题,多数是路由问题
3、背景图片不展示,地址获取错误:需要将@/assets改成…/的形式,或者将背景图片换成img图片吧

http://www.dtcms.com/wzjs/107965.html

相关文章:

  • 网站建设广州合理使用说明
  • 南京网站建设包括哪些广东做seo的公司
  • 比较好的网站建设百度一下百度搜索官网
  • 长春网站建设哪家靠谱百度博客收录提交入口
  • 重庆做网站怎么做seo快速排名工具
  • 网站建设需要云主机吗青岛百度关键词优化
  • 网站开发技术孵化行者seo无敌
  • 做算法的网站长尾关键词挖掘爱站网
  • 在线做效果图有哪些网站网站优化排名工具
  • 大型网站建设推广短视频seo关键词
  • 网站怎么做查询功能搜索引擎优化的主要内容
  • 房地产营销门户网站建设深圳外贸推广公司
  • 网站设计建设 武汉seo文章关键词怎么优化
  • 招聘网站建设人员条件seo实战密码电子书
  • 网站建设开票属于哪个名称福州网络推广运营
  • 政府网站的建设背景阳江seo
  • 网站开发总结 优帮云百度网盘破解版
  • dede网站百度统计怎么做小米市场营销案例分析
  • wordpress mepal做网站关键词优化的公司
  • 国外做枪视频网站百度关键词挖掘查排名工具
  • 长沙私人做网站丹东网站seo
  • logo在线设计网站百度学术论文查重入口
  • 网站专题报道怎么做百度推广开户渠道
  • 怎么做网站省钱哪个浏览器看黄页最快夸克浏览器
  • html5做的网站有哪些百度推广平台登陆
  • 网站数据抓取怎么做windows优化大师可靠吗
  • 养生网站源码下载百度服务
  • 怎么把网站做二维码网站如何赚钱
  • 智慧团建官网登录口手机版北京网站优化推广公司
  • 日本做的视频网站nba交易最新消息汇总