微前端-乾坤qiankun

2 篇文章 0 订阅
2 篇文章 0 订阅

2019-2020年前端最火的技术之一:微前端

微前端究竟是什么?

前端是近三年前端社区比较火的技术方案,试图把拆分大型后端系统的一些益处引入前端

微前端就是将不同的功能按照不同的维度拆分成多个子应用。通过主应用来加载这些子应用。

微前端的核心在于, 完后再!

微前端,即前端微服务。是将前端应用分解成一些更小、更简单的能够独立开发、测试、部署的小块,而在用户看来仍然是内聚的单个产品

前端主要解决的问题:

1)毫无相关的业务,独立部署,降低运维成本。 (独立业务拆离)

2)团队人员逐渐增多,产品功能复杂,代码冲突频繁、影响面大,需独立部署。 (独立模块拆离)

3)在业务中,运行比较稳定,运维不频繁的项目部分,需独立部署。 (稳定业务拆离)

4)架构比较老但运行比较稳定的项目部分,近期不计划重构的,需独立部署。(独立架构拆离)

前端特点: 独立开发、独立部署、独立运行、增量升级(单个服务升级)。

微前端方案正确的架构姿势应用之间不应该有任何直接或间接的技术栈、依赖、以及实现上的耦合。

Single-spa前端方案结合了MPASPA的优势,可以在单个页面内集成多个应用。

技术栈无关

独立部署每一个单页面应用

新功能使用新框架,旧的单页应用不用重写可以共存

改善初始加载时间,延迟加载代码

 qiankun示例

微前端拆离工具:qiankun

主应用配置:

1.安装乾坤

$ yarn add qiankun # 或者 npm i qiankun –S

2.注册微服务

I.自动注册

// 在主应用中注册子应用

II.手动注册

import { loadMicroApp } from 'qiankun';

 name跟container需要名称不一致。

3.应用访问

I.跨域

devServer: {
headers: {//
重点1: 允许跨域访问子应用页面
  ‘Access-Control-Allow-Origin’: ‘http://localhost:7100’,//设置多域名,逗号隔开
},

子应用配置:

I.main.js配置

 

II.路由配置

import '../../public-path'    // 重点3: 引入public-path文件

router里面添加

 

主子应用传参:

主应用:

import { initGlobalState } from "qiankun

const actions = initGlobalState(state);
actions.onGlobalStateChange((state, prev) => {
  // state:
变更后的状态; prev 变更前的状态
 
console.log(state, prev);
});

actions.setGlobalState(state);
actions.offGlobalStateChange();

子应用:

export function mount(props) {

props.onGlobalStateChange((state, prev) => {

// state: 变更后的状态; prev 变更前的状态

console.log(state, prev);

});

props.setGlobalState(state);

}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值