心之所向,勇往直前!
记录开发过程中的那些小事,给自己加点经验值。

前言

  项目使用了Vue cli3.0+作为基础架构,这个版本和2.0的有一些不同。具体参考:

  1. vue cli3.0快速搭建项目详解

  2. 《vue-cli2.0与vue-cli3.0》

  环境

  

  依赖

  演示

思路:先加载顶部一级菜单,当用户点击时触发请求,加载模块。等待模块加载完成后,加载二级菜单。这时候所有组件已经注册完成,用户点击菜单,根据固定好的路由配置,进入对应的模块子页面。

架构

  微前端的优点浅显点理解就是独立开发和部署、灵活配置、扩展性强。在以前开发的时候,所有的功能都放在同一个项目下,不仅造成体积越来越大(启动慢),而且后面接手的人往往需要花费很多时间去阅读代码后才能继续开发,造成很大的损耗。

  现在,一切都变得很简单!

 常见方案

  1. ifreame:简单易实现,但冗余html而且对SEO不友好
  2. WebComponents: 基本能实现功能,但兼容性不太行就没有仔细去琢磨

在这里框架中我采用的以Vue为核心实现模块化加载。

核心思路

  主要根据菜单地址发起Http请求拿到子模块的index.html。这个入口文件记录了模块需要用到的css和js文件相对路径。然后通过正则表达式解析出script标签、style标签。最后将标签加载到主页的最底部,完成子模块的加载。

  子模块拥有自己独立的领域逻辑,组件,api接口文件(为了避免冲突,要规范命名)。

  如图:

  

路由装载

  1. 自动注册子路由。

  通过require.context获取views目录文件路径集合,然后解析.vue文件,根据目录名 + 组件名生成的名称作为路由的name注册到主路由。

  

  

  2. 在main.js入口中暴露全局变量到window对象下,给子模块进行引用。registerChildRoutes方法用于子模块把自己的路由注册到主路由。

  

  3. 子模块main.js注册路由

  

结语

  本篇到此结束,如果有任何疑问或者指正,请发表在评论区。

《OneForAll框架搭建之旅》前端篇:微前端架构设计(Vue)的更多相关文章

  1. 看完这篇微服务架构设计思想,90%的Java程序员都收藏了

    本博客强烈推荐: Java电子书高清PDF集合免费下载 https://www.cnblogs.com/yuxiang1/p/12099324.html 微服务 软件架构是一个包含各种组织的系统组织, ...

  2. 微前端 & 微前端实践 & 微前端教程

    微前端 & 微前端实践 & 微前端教程 微前端 micro frontends https://micro-frontends.org/ https://github.com/neul ...

  3. (转)微服务架构 互联网保险O2O平台微服务架构设计

    http://www.cnblogs.com/Leo_wl/p/5049722.html 微服务架构 互联网保险O2O平台微服务架构设计 关于架构,笔者认为并不是越复杂越好,而是相反,简单就是硬道理也 ...

  4. Java生鲜电商平台-生鲜系统中微服务架构设计与分析实战

    Java生鲜电商平台-生鲜系统中微服务架构设计与分析实战 说明: Java生鲜系统中微服务的拆分应该如何架构设计与分析呢?以下是我的实战中的设计与经验分析. 目录 1. 微服务简介2. 当前现状3. ...

  5. Java生鲜电商平台-秒杀系统微服务架构设计与源码解析实战

    Java生鲜电商平台-秒杀系统微服务架构设计与源码解析实战 Java生鲜电商平台-  什么是秒杀 通俗一点讲就是网络商家为促销等目的组织的网上限时抢购活动 比如说京东秒杀,就是一种定时定量秒杀,在规定 ...

  6. SpringCloud之旅第一篇-微服务概念

    一.单体架构的问题 微服务为什么会出现?在学习Springboot的时候知道Springboot极大的简化了我们的开发,我们可以快速的进行业务开发,Springboot单体应用在项目的开发初期能够满足 ...

  7. 【微前端】微前端最终章-qiankun指南以及微前端整体探索

    序 这才2月中旬,广州就已经渐渐地进入了夏季,--夏天总是让人焦虑的.过年闲暇时间写下了微前端这系列的终章,欢迎拍砖.如果你习惯直接上手代码,不妨跳到实践一节,直接上代码教程玩一玩. qiankun原 ...

  8. Java高并发高性能分布式框架从无到有微服务架构设计

    微服务架构模式(Microservice Architect Pattern).近两年在服务的疯狂增长与云计算技术的进步,让微服务架构受到重点关注 微服务架构是一种架构模式,它提倡将单一应用程序划分成 ...

  9. 互联网保险O2O平台微服务架构设计(转)

    非常感谢http://www.cnblogs.com/skyblog/p/5044486.html 关于架构,笔者认为并不是越复杂越好,而是相反,简单就是硬道理也提现在这里.这也是微服务能够流行的原因 ...

随机推荐

  1. bzoj5104 Fib数列(BSGS+二次剩余)

    快AFO了才第一次写二次剩余的题…… 显然应该将Fn写成通项公式(具体是什么写起来不方便而且大家也都知道),设t=((1+√5)/2)n,T=√5N,然后可以得到t-(-1)t/t=√5N,两边同时乘 ...

  2. 使用okhttp连接网络,再把数据储存进Sqlite

    这次会把所有之前学过的东西应用在一起,写一个登入的功能. 1. Activity调用CONFIG,获得URL后 2. Activity再调用Okhttp,从服务器返回JSON 3. Activity调 ...

  3. Forest Program(2019ccpc秦皇岛F)

    题:http://acm.hdu.edu.cn/showproblem.php?pid=6736 题意:删掉一些边使得图不存在点双,求方案数. 分析:若一条边不属于点双,那么这条边有删和不删俩种选择, ...

  4. ubuntu Python 升级

    安装时ubuntu提示: DEPRECATION: Python 3.4 support has been deprecated. pip 19.1 will be the last one supp ...

  5. Java面试题2-附答案

    JVM的内存结构 根据 JVM 规范,JVM 内存共分为虚拟机栈.堆.方法区.程序计数器.本地方法栈五个部分. 1.Java虚拟机栈: 线程私有:每个方法在执行的时候会创建一个栈帧,存储了局部变量表, ...

  6. signal之——异步回收机制2

    前言:上一篇的处理方法可以解决所有回收问题,但是如果我们不考虑子进程的返回状态,那么可以使内核来进行对子进程的回收 代码如下: //如果无需关心进程结束状态 可以设置子进程结束时不产生僵尸进程有内核值 ...

  7. Python实现求1-1000以内的素数

    def func(): for i in range(2,1000): # count表示被整除的次数 count = 0 for j in range(1,i+1): if i%j==0: coun ...

  8. 吴裕雄--天生自然python学习笔记:python文档操作表格处理

    表格也是 Word 文件中常用的对象,下面讲解 Win32com 中常用的表格操作命令 . 新建表格的语法为: 在 Word 文件中新建一个表格并插入单元格内容 在 Word 文件中新建一个 3 行 ...

  9. windows下redis的配置和jedis api的最基本的使用

    redis的安装直接跳过 1.注册redis服务 在DOM窗口下,进入redis的安装目录(可以先进入安装目录,然后shift+右键,选择在此处打开powershell窗口), 输入命令: redis ...

  10. django项目导航页_20191128

    django项目导航页_20191128 第一步:python-django电商项目-需求分析架构设计数据库设计_20191115 python-django-linux上mysql的安装和配置_20 ...