前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Qiankun要被取代了!京东微前端框架C位出道

Qiankun要被取代了!京东微前端框架C位出道

作者头像
程序员老鱼
发布2024-04-15 10:36:12
2420
发布2024-04-15 10:36:12
举报
文章被收录于专栏:前端实验室前端实验室

什么是微前端

微前端是一种页面整合方案,它的核心在于将一个庞大的前端应用拆分成多个独立灵活的小型应用,每个应用都可以独立开发、独立运行、独立部署,再将这些小型应用融合为一个完整的应用,或者将原本运行已久、没有关联的几个应用融合为一个应用。

微前端既可以将多个项目融合为一,又可以减少项目之间的耦合,提升项目扩展性,相比一整块的前端仓库,微前端架构下的前端仓库倾向于更小更灵活。

MicroApp

MicroApp是由京东前端团队推出的一款微前端框架,它从组件化的思维,基于类WebComponent进行微前端的渲染,旨在降低上手难度、提升工作效率。MicroApp无关技术栈,也不和业务绑定,可以用于任何前端框架。

并且micro-app与技术栈无关,对前端框架没有限制,任何框架都可以作为基座应用嵌入任何类型的子应用。

特点

  • 使用简单:将功能封装到 WebComponent 中
  • 零依赖。无依赖、更高的扩展性
  • 兼容所有框架 技术栈无关
  • 通过 CustomElement 结合自定义的 ShadowDom,将微前端封装成一个类 WebComponent 组件,从而实现微前端的组件化渲染。

原理

MicroApp 的核心功能在CustomElement基础上进行构建,CustomElement用于创建自定义标签,并提供了元素的渲染、卸载、属性修改等钩子函数,我们通过钩子函数获知微应用的渲染时机,并将自定义标签作为容器,微应用的所有元素和样式作用域都无法逃离容器边界,从而形成一个封闭的环境。

生命周期列表
  • created:当micro-app标签被创建后,加载资源之前执行。
  • beforemount:资源加载完成,正式渲染之前执行。
  • mounted:子应用已经渲染完成后执行
  • unmount:子应用卸载时执行。
  • error:当出现破坏性错误,无法继续渲染时执行。

安装使用

安装依赖

代码语言:javascript
复制
yarn add @micro-zoe/micro-app

引入

代码语言:javascript
复制
// main.js
import microApp from '@micro-zoe/micro-app'

microApp.start()

在页面中嵌入微前端应用

代码语言:javascript
复制
<!-- 👇 name为应用名称,url为应用地址 -->
<micro-app name='my-app' url='http://localhost:3000/'></micro-app>

与其他框架对比

目前开源的微前端框架中有的功能 MicroApp都有,并提供了一些它们不具备的功能,比如静态资源地址补全,元素隔离,插件系统等。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-04-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 前端实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是微前端
  • MicroApp
    • 特点
      • 原理
        • 安装使用
          • 与其他框架对比
          相关产品与服务
          容器服务
          腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档