笔记:无界微前端入门

这篇具有很好参考价值的文章主要介绍了笔记:无界微前端入门。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

无界微前端框架笔记

wujie(无界)是腾讯在 2022 年 7 月推出的微前端框架,下面是腾讯前端团队的原话

无界微前端方案基于 webcomponent 容器 + iframe 沙箱,能够完善的解决适配成本、样式隔离、运行性能、页面白屏、子应用通信、子应用保活、多应用激活、vite 框架支持、应用共享等用户的核心诉求。

  • 官方文档地址
  • 无界对比其他微前端实现方案文章地址

简单实现

以 vite 创建的两个 vue3 项目为例(分别为主应用 main 和子应用 son1)

  1. 主应用安装 wujie-vue3 依赖
yarn add wujie-vue3
  1. 主应用引入 wujie-vue3
/* main项目->main.js */
import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
import router from './router/index'
import WujieVue from 'wujie-vue3'

createApp(App).use(router).use(WujieVue).mount('#app')
  1. 主应用配置路由
/* main项目->router/index.js */
import { createRouter, createWebHistory } from 'vue-router'

export const routes = [
  {
    path: '/'
  },
  {
    path: '/son-1',
    component: () => import('../views/son1.vue')
  }
]

const router = createRouter({
  history: createWebHistory(),
  routes
})

export default router
<!-- main项目->view/son1.vue  -->
<template>
  <!--单例模式,name相同则复用一个无界实例,改变url则子应用重新渲染实例到对应路由 -->
  <WujieVue width="100%" height="100%" name="son-1" :url="url" :sync="true"></WujieVue>
</template>

<script>
  export default {
    data() {
      return {
        url: 'http://localhost:4002/' //这个是子应用开启的服务地址,可在vite.config.js中自行配置
      }
    }
  }
</script>
  1. 主应用配置路由跳转
<!-- main项目->App.vue  -->
<script setup></script>

<template>
  <router-link to="/son-1">son1</router-link>
  <router-link to="/son-2">son2</router-link>
  <router-view></router-view>
</template>
  1. 子应用接入主应用
/* son1项目->main.js  */
import { createApp } from 'vue'
import './style.css'
import App from './App.vue'

if (window.__POWERED_BY_WUJIE__) {
  let instance
  window.__WUJIE_MOUNT = () => {
    const router = createRouter({ history: createWebHistory(), routes })
    instance = createApp(App)
    instance.use(router)
    instance.mount('#app')
  }
  window.__WUJIE_UNMOUNT = () => {
    instance.unmount()
  }
} else {
  createApp(App)
    .use(createRouter({ history: createWebHistory(), routes }))
    .mount('#app')
}
  1. 启动子应用和主应用
    注意:子应用启用之后的端口域名要对应主应用中的域名

wujie 是如何通过路由去控制子应用的?

路由同步会将子应用路径的 path+query+hash 通过 window.encodeURIComponent 编码后挂载在主应用 url 的查询参数上,其中 key 值为子应用的 name。

开启路由同步后,刷新浏览器或者将 url 分享出去子应用的路由状态都不会丢失,当一个页面存在多个子应用时无界支持所有子应用路由同步,浏览器刷新、前进、后退子应用路由状态也都不会丢失文章来源地址https://www.toymoban.com/news/detail-611856.html

到了这里,关于笔记:无界微前端入门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [前端系列第3弹]JS入门教程:从零开始学习JavaScript

    本文将带领大家,从零开始学习JavaScript,fighting~ 目录 一、JavaScript简介 二、变量和数据类型 三、注释和分号 四、算术运算符 五、表达式和语句 六、代码块和作用域 七、函数(最重要)          JavaScript(简称JS)是一种运行在浏览器中的脚本语言,它可以让网页变得

    2024年02月13日
    浏览(65)
  • 微前端框架MicroApp入门学习笔记(一)

    1、简介   微前端是一种架构风格,旨在通过将前端应用程序拆分为更小、更可管理的部分,使多个团队能够独立开发、部署和维护这些部分,从而实现前端的可扩展性和可维护性。   MicroApp框架是京东出品的一种用于构建微前端架构的开源框架,旨在帮助开发者更好地

    2024年02月12日
    浏览(41)
  • 微前端(无界)

    前言:微前端已经是一个非常成熟的领域了,但开发者不管采用哪个现有方案,在适配成本、样式隔离、运行性能、页面白屏、子应用通信、子应用保活、多应用激活、vite 框架支持、应用共享等用户核心诉求都或存在问题,或无法提供支持。本文提供一种基于 iframe 的全新微

    2024年02月02日
    浏览(43)
  • 微前端无界机制浅析

    随着项目的发展,前端SPA应用的规模不断加大、业务代码耦合、编译慢,导致日常的维护难度日益增加。同时前端技术的发展迅猛,导致功能扩展吃力,重构成本高,稳定性低。 为了能够将前端模块解耦,通过相关技术调研,最终选择了无界微前端框架作为物流客服系统解耦

    2024年02月05日
    浏览(40)
  • 前端微服务无界实践

    随着项目的发展,前端SPA应用的规模不断加大、业务代码耦合、编译慢,导致日常的维护难度日益增加。同时前端技术的发展迅猛,导致功能扩展吃力,重构成本高,稳定性低。因此前端微服务应运而生。 1.复杂度可控: 业务模块解耦,避免代码过大,保持较低的复杂度,便于维

    2024年02月06日
    浏览(74)
  • 微前端:无界wujie简单上手

    之前用过了微前端框架 qiankun 并剖析了其原理,今天我们来试试另一个同样厉害的微前端框架无界,本文只是讲如何使用,原理部分后面再更新。 无界支持多种项目的接入,如 react、vue 等 如果你项目是 react、vue 可以直接用 wujie-vue2、wujie-vue3、wujie-react,但是这些也是基于下

    2024年02月11日
    浏览(38)
  • 前端微服务无界实践 | 京东云技术团队

    随着项目的发展,前端SPA应用的规模不断加大、业务代码耦合、编译慢,导致日常的维护难度日益增加。同时前端技术的发展迅猛,导致功能扩展吃力,重构成本高,稳定性低。因此前端微服务应运而生。 前端微服务优势 1.复杂度可控: 业务模块解耦,避免代码过大,保持较低

    2024年02月06日
    浏览(46)
  • 前端JavaScript入门-day03

    (创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 目录 1、循环-for 1. for 循环-基本使用 1. for循环语法 2. 退出循环  2. for 循环嵌套  2、数组  1 数组是什么 2 数组的基本使用  1. 声明语法 2. 取值语法  3. 一些术语:  4. 遍历

    2024年02月11日
    浏览(51)
  • 前端JavaScript入门-day05

    (创作不易,感谢有你,你的支持,就是我前行的最大动力,如果看完对你有帮助,请留下您的足迹) 对象(object):JavaScript里的一种数据类型 可以理解为是一种无序的数据集合, 注意数组是有序的数据集合 用来描述某个事物,例如描述一个人 人有姓名、年龄、性别等信息

    2024年02月11日
    浏览(48)
  • 微前端--无界方案之官网demo操作说明

    官方demo在GitHub(访问有问题,需要设置,本人未设置) 链接:https://github.com/Tencent/wujie (别处给的,也能用) 其中的包需要通过pnpm下载, 使用npm下载存在问题!!! 注:默认下载最新版pnpm,支持的node为14.6以上,以下版本请到pnpm官网找历史版本 出现一下界面,即为成功

    2024年02月08日
    浏览(67)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包