微前端框架MicroApp入门学习笔记(一)

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

1、简介

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

  京东MicroApp框架具有以下特点和功能:

  1. 轻量级:框架本身体积小,加载速度快,不会给应用程序带来额外的负担。
  2. 插件化:支持插件机制,可以根据需要灵活添加和扩展功能。
  3. 组件化:采用组件化的开发模式,方便开发者进行模块化开发和复用。
  4. 独立部署:每个MicroApp都可以独立部署和运行,支持单独开发和测试。
  5. 路由管理:提供路由管理功能,支持子应用之间的路由跳转和通信。
  6. 状态管理:提供状态管理机制,允许不同子应用之间共享数据和状态。
  7. 样式隔离:采用样式隔离的方式,确保每个子应用之间的样式不会相互干扰。

  使用京东MicroApp框架,开发者可以将复杂的前端应用程序拆分为多个独立的子应用,每个子应用可以由不同的团队进行开发和维护,从而实现团队间的解耦和独立开发。同时,框架提供了一套完整的工具和规范,简化了微前端架构的搭建和管理过程。

详细内容可以前往官方文档学习: 《官方文档》。

2、入门示例

2.1、主应用配置

  第一步,在package.json文件中引入MicroApp框架依赖,如下所示:

"dependencies": {
	"@micro-zoe/micro-app": "^0.8.11",
	"vue-router": "^3.5.1",
	   "core-js": "^2.6.5",
	   "vue": "^2.6.10"
	 },

也可以通过命令直接安装“npm i @micro-zoe/micro-app@0.8.11 --save”

  第二步,修改main.js文件,完成初始化。

import Vue from 'vue'
import App from './App.vue'
import router from './router';
import microApp from '@micro-zoe/micro-app'

Vue.config.productionTip = false

microApp.start();

new Vue({
	 router,
  render: h => h(App),
}).$mount('#app')

  第三步,创建路由及其页面

  app.vue页面修改(增加测试切换应用的按钮):

<template>
  <div id="app">
	  <h1>主应用</h1> 
		<router-link to="/micro-child/hello">跳转子应用 A</router-link>
	  	</br>
		<router-link to="/micro-child2/hello">跳转子应用 B</router-link> 
		<router-view/> 
  </div>
</template>

  子应用的路由页面:

<!--子应用A-->
<template>
  <div>
    <h1>子应用A</h1>
    <hr>
    <!--
      name(必传):应用名称
      url(必传):应用地址,会被自动补全为http://localhost:3000/index.html
      baseroute(可选):基座应用分配给子应用的基础路由
     -->
    <micro-app name='micro-child' url='http://localhost:8081/' baseroute='/micro-child'></micro-app>
  </div>
</template>


<!-- 子应用B  -->
<template>
  <div>
    <h1>子应用B</h1>
    <hr>
    <!--
      name(必传):应用名称
      url(必传):应用地址
      baseroute(可选):基座应用分配给子应用的基础路由,就是上面的 `/my-page`
     -->
    <micro-app name='micro-child2' url='http://localhost:8082/' baseroute='/micro-child2'></micro-app>
  </div>
</template>

  路由配置:

// 主程序 路由
import Vue from 'vue'
import VueRouter from 'vue-router'
import MyPage from '../components/MyPage.vue'
import MyPage2 from '../components/MyPage2.vue'

Vue.use(VueRouter)

const routes = [
    {
        // 👇 非严格匹配,/my-page/* 都指向 MyPage 页面
        path: '/micro-child/*', // vue-router@4.x path的写法为:'/my-page/:page*'
        name: 'micro-child',
        component: MyPage,
    },{
        // 👇 非严格匹配,/my-page/* 都指向 MyPage 页面
        path: '/micro-child2/*', // vue-router@4.x path的写法为:'/my-page/:page*'
        name: 'micro-child2',
        component: MyPage2,
    }
]

const router = new VueRouter({
    mode: 'history',
    // 👇 设置基础路由,子应用可以通过window.__MICRO_APP_BASE_ROUTE__获取基座下发的baseroute,如果没有设置baseroute属性,则此值默认为空字符串
    base: '/',
    routes
})

export default router
2.2、子应用配置

  子应用就是普通的vue项目,配置该项目允许跨域支持就可以了。子应用A和子应用B配置一样,我选择其中一个进行记录实现过程:

  页面:

//app.vue
<template>
  <div id="app">
    <img alt="Vue logo" src="./assets/logo.png">
    <router-view></router-view>
  </div>
</template>

//组件
<template>
  <div class="hello">
    Hello-Word,My name is APP A!
  </div>
</template>

  路由:

import VueRouter from 'vue-router';
import Hello from "../components/Hello.vue"
import Vue from "vue";

Vue.use(VueRouter)
const router = new VueRouter({
	mode: 'history',
    // 👇 设置基础路由,子应用可以通过window.__MICRO_APP_BASE_ROUTE__获取基座下发的baseroute,如果没有设置baseroute属性,则此值默认为空字符串
    base: window.__MICRO_APP_BASE_ROUTE__ || '/',
    routes:[
        {
            path: '/hello',
            name: 'hello',
            component: Hello,
        },
    ],
})

export default router;

  为了支持跨域,需要修改vue.config.js文件,增加如下内容:

module.exports = {
  transpileDependencies: ["vue"],
  devServer: {
    headers: {
      'Access-Control-Allow-Origin': '*',
    }
  }
};
2.3、启动项目

  启动项目,首先启动子项目,根据子项目地址,修改主应用的子应用路由中的配置页面中的地址,然后启动主应用,访问主应用,页面如下:
微前端框架MicroApp入门学习笔记(一),前端框架,学习,笔记
微前端框架MicroApp入门学习笔记(一),前端框架,学习,笔记文章来源地址https://www.toymoban.com/news/detail-526704.html

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

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

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

相关文章

  • 【JavaEE初阶】前端第四节.JavaScript入门学习笔记

    作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:Java测试开发 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!! 前言 一、前置知识  1、JS 和 HTML 和 CSS 之间的关系 1.2 JS 的书写形式 1.2.1 内嵌式 1.2.2 行内式  1.2.3 外部式 1.2.4 扩展 1.2

    2024年02月08日
    浏览(39)
  • 【码尚教育】Python自动化测试框架pytest—入门学习笔记

    目录 前言 一、pytest单元测试框架 二、 单元测试框架和自动化测试框架有什么关系 三、pytest简介 四、使用pytest默认的测试用例规则及基础应用 五、pytest测试用例的运行方式 六、pytest执行测试用例的顺序 七、如何分组执行​编辑 八、pytest跳过用例 九、pytest框架实现的一些

    2023年04月12日
    浏览(34)
  • AJAX入门到实战,学习前端框架前必会的(ajax+node.js+webpack+git)(七)

    实操: server.js utils/lib/index.js utils/package.json 从别处(网上、其他人手中)拿到写好的项目,一般不携带node_modules文件夹(所占存储空间大) 但有package.json文件,里面记载了当前项目下载过的包 还有package-lock.json文件,固定软件包的版本 导入模块/包,除了自己创建的模块、包

    2024年01月22日
    浏览(54)
  • Hadoop入门学习笔记——四、MapReduce的框架配置和YARN的部署

    视频课程地址:https://www.bilibili.com/video/BV1WY4y197g7 课程资料链接:https://pan.baidu.com/s/15KpnWeKpvExpKmOC8xjmtQ?pwd=5ay8 Hadoop入门学习笔记(汇总) 本次YARN的部署结构如下图所示: 当前,共有三台服务器(虚拟机)构成集群,集群规划如下所示: 主机 部署的服务 node1 ResourceManager、N

    2024年02月04日
    浏览(35)
  • AJAX入门到实战,学习前端框架前必会的(ajax+node.js+webpack+git)(五)—— 项目-新闻头条-数据管理平台-ajax综合案例前端

    愿许秋风知我意,解我心中意难平。 推荐使用, 每个程序员都有自己的管理方式。 HTML结构: 1.为什么要提取公共前缀地址(基地址),因为公司业务可能会更换服务器,如果你不想一条一条地修改请求地址的话。 后续使用axios时,url不需要再写前缀。 2.请求成功与失败 成

    2024年01月25日
    浏览(40)
  • 详细理解(学习笔记) | DETR(整合了Transformer的目标检测框架) DETR入门解读以及Transformer的实操实现

    DETR ,全称 DEtection TRansformer,是Facebook提出的基于Transformer的端到端目标检测网络,发表于ECCV2020。 原文: 链接 源码: 链接 DETR 端到端目标检测网络模型,是第一个将 Transformer 成功整合为检测pipline中心构建块的目标检测框架模型。基于Transformers的端到端目标检测,没有NMS后

    2024年02月04日
    浏览(39)
  • 从零开始的Django框架入门到实战教程(内含实战实例) - 01 创建项目与app、加入静态文件、模板语法介绍(学习笔记)

      Django是目前比较火爆的框架,之前有在知乎刷到,很多毕业生进入大厂实习后因为不会git和Django框架3天就被踢掉了,因为他们很难把自己的工作融入到整个组的工作中。因此,我尝试自学Django并整理出如下笔记。   在这部分,我将从Django的安装讲起,从创建项目到制

    2024年02月09日
    浏览(50)
  • Vue前端框架入门

    经过一小段时间学习 我认为vue就是在原js上进行的一个加强 简化JS中的DOM操作 vue是分两个层的 一个叫做视图层(View),你可以理解为展现出来的前端页面 一个叫数据模型层(Model),包含数据和一些数据的处理方法 MVVM就是实现这两层之间的数据的双向绑定 {{}}是我们的插值表达式

    2024年02月14日
    浏览(28)
  • 前端框架笔记

    安装Vue.js有两种方法: (1)类似于Bootstrap或jQuery,直接通过HTML文件中的标签引用。为了方便开发者使用,Vue.js提供了相关的CDN,通过如下代码可以引用最新版本的Vue.js: 通过指定版本号,可以引用不同版本的Vue.js,这样项目工程不会因为新版本的Vue.js而出现不兼容的问题。

    2024年02月08日
    浏览(20)
  • 第四章:前端框架Vue基础入门

    本章学习目标: 了解Vue框架架构思想 掌握Vue核心指令 掌握计算属性与监视 掌握组件化开发模式 官方文档:https://cn.vuejs.org/guide/introduction.html. 文档可选择使用optionsAPI(选项式API)阅读,或者CompositionApi(组合式API)阅读。选项式API更适合平滑从vue2过渡,以下示例均以Compositi

    2024年02月12日
    浏览(34)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包