前端微服务框架single-spa

  • javascript(前端)微服务
    • 架构概况
    • 使用sing-spa会有多困难?

javascript(前端)微服务

single-spa是一个可以让使用多个使用javascript语言框架的构建的应用集成在一起的框架, 使用signle-spa架构可以带来一下好处:

  • 在同一个页面下使用多个框架可以实现无刷新(react/vue/angluar/ember或其他)
  • 单个前端应用独立部署
  • 使用新框架无需重写现有的应用
  • 懒加载

架构概况

single-spa的灵感来源于现代前端框架的组件生命周期以及使用全部应用的生命周期。它诞生于Canopy每次被卡在希望使用React + react-router来替换我们Angluar + ui-router应用的时候,现在single-spa支持
几乎支持所有前端框架。由于许多前端框架短命而使javascript(或者说前端)臭名昭著(ps.三天出一新框架,宝宝心里苦),我们决定让使用任何前端框架这件事变得更简单:

single-spa apps 考虑基于以下:

  • 应用集, 每个应用应该是独立的单体应用(SPA)。每个应用应该能相应url路由时间并且知道如何从dom中初始化启动,mount,unmount。复杂的单体(页)应用SPA与single-spa应用集主要区别在于single-spa应用集必须要让多个应用共存在同一html页面,而不是让每个应用拥有自己的html页面下。

例如,两个分别基于react和angluar的应用。当他们处于激活状态的时候,监听路由事件,并将对应的内容放置dom中。当非激活状态的时候,不再监听路由变化,并且将内容从dom中移除。

  • 一个single-spa-config, 一个html应用以及多个注册应用构成一个single-spa应用。每个应用注册需要以下三方面:

    1. 名字
    2. 加载应用的方法
    3. 判断应用何时处于激活/非激活状态的方法

使用sing-spa会有多困难?

single-spa 支持ES5, ES6+, TypeScript, Webpack, SystemJS, Gulp, Grunt, Bower, ember-cli, 甚至任何可能构建的系统。你可以使用npm, jsnpm来安装使用,或者直接使用"<script>"标签。

我们的目标是希望(使用single-spa)越简单越好。但是我们需要指出的是single-spa的是一个增强架构,它完成的事情跟前端框架完成的业务是有区别的。(备注single-spa不是为了实现业务逻辑)

如果你的项目不是从头开始,你必须合并SPA(migrate your SPA) 来变成single-spa应用

  • React - Migrating to single-spa
  • Angular - Migrating to single-spa

(译)

前端微服务框架single-spa相关推荐

  1. qiankun前端微服务框架

    目录 一.须知 二.主应用配置 2.1 main.js 2.2 app.vue 三.微应用配置 3.1 注册 3.1.1 vue.config.js配置 3.1.2 新增文件 publicPath.j ...

  2. 基于single-spa+vue的前端微服务项目实践

    基于single-spa + vue 的前端微服务拆分及实践项目 **一. 前端微服务化的背景和价值: 背景:业务模块呈现快速增长趋势,孵化的业务模块也逐渐增多. 价值:让产品的前端架构能快速.插件化 ...

  3. abp vNext微服务框架分析

    abp vNext新框架的热度一直都很高,于是最近上手将vNext的微服务Demo做了一番研究.我的体验是,vNext的微服务架构确实比较成熟,但是十分难以上手,对于没有微服务开发经验的.net人员来 ...

  4. 【转】abp vNext微服务框架分析

    abp vNext新框架的热度一直都很高,于是最近上手将vNext的微服务Demo做了一番研究.我的体验是,vNext的微服务架构确实比较成熟,但是十分难以上手,对于没有微服务开发经验的.net人员来 ...

  5. 前端微服务无界实践 | 京东云技术团队

    一.前言 随着项目的发展,前端SPA应用的规模不断加大.业务代码耦合.编译慢,导致日常的维护难度日益增加.同时前端技术的发展迅猛,导致功能扩展吃力,重构成本高,稳定性低.因此前端微服务应运而生. 前端 ...

  6. 微服务框架实施_规划和实施微服务的原则

    微服务框架实施 Planning a microservices-based application - where to start from? This architecture is compo ...

  7. python 微服务框架 知乎_序: 我需要一个什么样的微服务框架

    前言 新坑第一篇文章, 做一个开篇的序吧. 开发了很多 python 的 web 微服务, 也使用过很多 web 框架, django, tornado, flask, 等等等等. 不同的 web 框 ...

  8. 从 Spring Cloud 看一个微服务框架的「五脏六腑]

    https://webfe.kujiale.com/spring-could-heart/ Spring Cloud 是一个基于 Spring Boot 实现的微服务框架,它包含了实现微服务架构所需的 ...

  9. 微服务框架 Go-Micro 集成 Nacos 实战之服务注册与发现

    作者 | 张斌斌 导读:本文主要介绍如何使用 Golang 生态中的微服务框架 Go-Micro(v2) 集成 Nacos 进行服务注册与发现.(Go-Micro 目前已经是 v3 版本,但由于某些原 ...

  10. centos部署python flask_python 微服务框架之nameko实践

    大纲: 1.本篇关键技术点及其释义 2.实际需求和目标 3.可行的三大解决方案 4.微服务与传统服务的差别 5.代码大纲:安装依赖及nameko五个完整的代码示例 6.附录:docker的在线安装方式 ...

最新文章

  1. Flash(JSFL)
  2. dropout是什么?为什么dropout管用?测试集上是否需要使用dropout?说明为什么神经网络中的dropout可以作为正则化?
  3. 让开源解读“甲骨文”--RHEL5.3部署安装Oracle Database10g Release2
  4. java判断五张牌中有一对,同花大顺-扑克牌问题一副扑克牌中任意取出五张牌,那五 – 手机爱问...
  5. python 如何判断一个函数执行完成_Python 函数为什么会默认返回 None?
  6. centos7.5 源码安装mysql5.7.25
  7. SQLServer表字段默认值相关信息的获取方法
  8. spring自动注入模型
  9. UART 协议以及概念
  10. [转载]唐僧的亲爹究竟是谁 (2016-02-17 16:37:21)
  11. web、ftp上传区别
  12. 【华人学者风采】林达华 香港中文大学
  13. openStack 常见问题及解决
  14. python logging配置时间或大小轮转
  15. windo10系统哪个版本运行最快呢?
  16. 英特尔发布Xeon D-1600处理器:10nm工艺 性能提升40%
  17. git 更换仓库地址
  18. html生成列表模板的方法
  19. 请求响应结果和预期结果做对比
  20. 敏感词过滤算法 为内容保驾护航 Java/.Net/C++/c/Python等语言是如何进行敏感词打码限制的 高效防范违规内容

热门文章

  1. 混沌分形之朱利亚集(JuliaSet)
  2. SSM项目之短信验证码登录
  3. Windows通过IP地址向对方发送信息
  4. 计算机抖音链接,抖音怎么开始电脑直播
  5. python解四元一次方程_sympy 解四元一次方程
  6. 相似的核心玩法之下,谁能在“自走棋”的路上走得更远?
  7. 金蝶KIS专业版如何做盘点
  8. 数字信号处理考试要点
  9. 从《天龙八部 3D》到《诛仙》手游,我们如何连续做出成功产品?
  10. java弹幕爬取,手把手教你爬取B站弹幕(超详细)!