js文件里获取路由 vue_基于 Vue 技术栈的微前端设计思路与落地实践

本文介绍了基于Vue技术栈的微前端解决方案,包括预加载和懒加载两种路由方式。通过将前端项目拆分为多个子项目,实现了代码的模块化管理和独立部署,提高了开发效率和项目维护性。同时,文章讨论了方案的优缺点,并解答了关于子项目更新和缓存策略的问题。
摘要由CSDN通过智能技术生成

文章首发于 mcuking 的博客:https://github.com/mcuking/blog/issues/81

文章来自小伙伴 mucking 的投稿

项目地址:

preload-routes

https://github.com/micro-frontends-vue/preload-routes

async-routes

https://github.com/micro-frontends-vue/async-routes

mobile-web-best-practice

https://github.com/mcuking/mobile-web-best-practice

前几天看到了 微前端在美团外卖的实践,感觉和笔者所在团队实践了一年多的微前端方案非常类似,只不过我们是基于 Vue 技术栈的,所以也想总结一篇文章分享给大家。因为笔者文笔不算太好,其中借用了一些美团文章的一些总结性的文字,还请见谅哦~

背景介绍

对于大型前端项目,比如公司内部管理系统(一般包括 OA、HR、CRM、会议预约等系统),如果将所有业务放在一个前端项目里,随着业务功能不断增加,就会导致如下这些问题:

  • 代码规模庞大,导致编译时间过长,开发、打包速度越来越慢

  • 项目文件越来越多,导致查找相关文件变得越来越困难

  • 某一个业务的小改动,导致整个项目的打包和部署

方案介绍

preload-routes 和 async-routes 是目前笔者所在团队使用的微前端方案,最终会将整个前端项目拆解成一个主项目和多个子项目,其中两者作用如下:

  • 主项目:用于管理子项目的路由切换、注册子项目的路由和全局 Store 层、提供全局库和方法

  • 子项目:用于开发子业务线业务代码,一个子项目对应一个子业务线,并且包含两端(PC + Mobile)代码和复用层代码(项目分层中的非视图层)

结合笔者之前的采用分层架构实现复用非视图代码的方式(感兴趣的话请参考笔者之前的文章 前端分层架构实践心得),完整的方案如下:

06bc2e8821b9d4fa9761a126c910ecd3.png

如图所示,将整个前端项目按照业务线拆分出多个子项目,每个子项目都是独立的仓库,只包含了单个业务线的代码,可以进行独立开发和部署,降低了项目维护的复杂度。

采用这套方案,使得我们的前端项目不仅保有了横向上(多个子项目)的扩展性,又拥有了纵向上(单个子项目)的复用性。那么这套方案具体是怎么实现的呢?下面就详细说明方案的实现机制。

JeSuisEtienne
关注 关注
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue3 - 在纯 js/ts 文件中实现路由跳转与获取路由参数功能,在外部 js 文件拿到路由实例进行页面跳转和路由传参获取等(完美解决纯 js/ts 文件内无法获取路由问题,提供详细示例源码)
王佳斌
10-17 3437
vue3在纯js文件中实现路由跳转,vue3如何在纯ts js文件中使用vue-router路由跳转页面,vue3项目在一个js文件中怎么使用router路由跳转页面,vue3的js文件中使用router,useRouter和useRoute打印为undefined怎么解决,js ts文件vue-router是undefined,vue3网页怎么在某个js文件拿到路由vue3如何在.ts文件获取路由传递的参数,在js文件操作vue-router路由,在外部js文件获取当前路由vue3如何在外部
前端实战看这篇就够了 - Vue项目篇
qq_15390381的博客
01-10 9018
qiankun + vue + element 的前端架构项目,主项目与子应用均使用vue。支持三大前端框架可根据自己需求调整。 前端 qiankun 前端是什么、为什么要做前端、qiankun是什么这些笔者将不再叙述,在前端服务话提出的两年已经有过了很多次的讨论和“定义”。 qiankun有兴趣的可以搜一下。 暂时还对这方面未有过了解的同学-> 传送门:可能是你见过最完善的前...
Vue项目,在js文件获取路由参数以及路由跳转
weixin_42193760的博客
11-27 3232
js文件,直接调用this.$route获取路由参数或者路由跳转,会报错!
技术实践前端技术应用
最新发布
iOceanMind的博客
07-26 720
前端是一种新兴的前端架构模式,是一种类似于服务的架构,将服务的理念应用于浏览器端。其核心理念是将一个大而单一的前端应用拆分为多个小型独立的应用。这些应用各自独立,可以由不同团队开发维护,部署,组合这些应用,行成一个聚合应用。
js文件获取路由 vue_vue不通过路由直接获取url中参数的方法示例
weixin_39839726的博客
12-20 738
前言众所周知vue中使用路由的方式设置url参数,但是这种方式必须要在路径中附带参数,而且这个参数是需要在vue路由中提前设置好的。相对来说,在某些情况下直接在url后面拼接?mid=100的方式传递参数更灵活,你不需要设置路由,只需要在url后拼接参数即可,但是这种方式就需要通过javascript获取并提取url中的参数,通过传统的方式直接在页面中获取是行不通的了,因为vue中是无法通过lo...
vue中使用swiper插件实例_在 Vue.js 中使用嵌套路由
weixin_39771791的博客
11-20 306
每日前端夜话第290篇翻译:疯狂的技术宅作者:Parthiv Mohan来源:alligator.io正文共:2408字预计阅读时间:7 分钟随着 Vue.js 单页应用(SPA)变得相当复杂,你开始需要 Vue 路由以及嵌套路由。嵌套路由允许更复杂的用户界面以及相互嵌套的组件。让我们创建一个相对简单的用例,来展示 Vue Router 中嵌套路由的实用性。用 Vue CLI 进行设置...
js文件获取路由 vue_javascript – 在VueJS中访问$route.params
weixin_30985047的博客
12-30 5471
浏览此文档:https://router.vuejs.org/en/essentials/navigation.html看起来您可以绑定< router-link:to =“variableName”> Link Text< / routerlink>这很漂亮;但是,我试图在我正在尝试构建的组件内部访问路由参数时遇到了一些麻烦.所以我用这个:Title of thing然后...
vuex的actions.js文件获取路由
weixin_44886911的博客
02-06 773
vuex的actions.js文件获取路由
网易严选企业级前端解决方案与落地实践
网易技术热爱者
11-25 1297
本文作者:张浩(网易严选技术团队) 张浩,网易资深前端开发工程师,严选数据产品前端负责人。先后负责过网易企业邮箱、网易有钱、网易严选等大型项目的前端架构设计及开发。当前致力于大前端与通用能力建设、工程化与效率工具、企业级应用架构等领域研究。 前端架构是一种设计方法,其中,前端应用被分解为多个松散而协同工作的半独立“应用”。前端的思想来源于服务,其名称也遵循了服务的命名方式。那么,前端到底如何落地呢?来自网易严选的资深前端开发工程师张浩为大家解读了网易严选企业级前端的解决方案与落...
vue项目实战精粹汇总
趣谈前端
02-09 3383
前言vue作为前端主流的3大框架之一,目前在国内有着非常广泛的应用,由于其轻量和自底向上的渐进式设计思想,使其不仅仅被应用于PC系统,对于移动端,桌面软件(electronjs)等也有广泛...
前端技术浪潮与应用
LittleRoundFace的博客
11-28 2285
2020年前端技术浪潮与应用 文章目录2020年前端技术浪潮与应用一、前端基建01.前端可视化01-1.页面可视化搭建①页面可视化背景-前端行业提效分析②业界-前端行业提效轮子:[前端可视化搭建工具业界的轮子](https://juejin.im/post/6858881797490098190)③背景-提效轮子总结归纳④智能化相关行业提效分析⑤举例可视化搭建其中的一个例子来看前端可视化——imgcookimgcook介绍-产品大图imgcook介绍-产品大图核心技术难点-智能识别表达拆解核心技术难点-智能
preload:vue路由器的数据预加载,类似于Sapper的预加载或Nuxt.js的asyncData
05-25
@ badrap / preload 在您的路由组件中添加preload功能,用于在呈现这些路由之前预填充数据。 大多数情况下是根据Sapper的建模的,但也类似于Nuxt.js的和Next.js的 。 安装 $ npm i @badrap/preload 用法 提供了以下示例的修改。 基本设定 该模块导出单个功能。 在将路由定义传递给vue-router之前,使用此功能来修饰您的路由定义: import Vue from "vue" ; import VueRouter from "vue-router" ; import preload from "@badrap/preload" ; // Import preload. import Foo from "./Foo.vue" ; // Import a couple of route components which impo
vue路由路由传参(parmas,query)
田兴的博客
12-22 5224
一、Vue路由基础用法: 1 .安装 npm install vue-router --save 2 .main.js中 //Vue路由:引入 import VueRouter from 'vue-router' Vue.use(VueRouter) //Vue路由:引入并创建组件 import BYHome from './components/BYHome.vue' import BYNe...
js easyui 标签页_Vue记账项目 标签页 + 标签编辑页
weixin_39577289的博客
11-22 57
1、使用MVC如何在一个ts文件映入js文件创建model.js如果使用export default导出则这么导入如果使用export {model}导出则这么导入析构简化改成ts文件文件js后缀改成ts,将没有写:类型的错误都更改好,发现该类型在其他文件时,那么就把该类型放到全局共用的地方custom.d.ts(自定义的类型)Record是一个默认就有的类型,因此需要重命名成RecordIt...
Vue.js之this.$route.params和this.$route.query的区别(附代码)
卡洛背心的博客
11-30 633
this.$route.query的使用 1、在router/index.js文件进行编辑 { path:'/index', component: index, //添加路由 children:[ { path:':shopid', component:detail } ] }, 2、传参数 this.$router.push({ path: '/index/detail', query:{shopid: item.id}
Vue.js 中的 $router 和 $route
徐师兄的博客
06-08 1972
在本文中,我们介绍了 Vue.js 中的 $router 和route,以及它们的区别。route,以及它们的区别。route,以及它们的区别。router 是用于管理路由的对象,包含了许多方法和属性,用于在路由之间进行导航。$route 是用于获取当前路由信息的对象,包含了许多属性和方法,用于描述当前路由的状态。为了更好地了解 $router 和 $route 的使用,我们演示了一个完整的示例代码,包含了路由链接、嵌套路由路由导航等等。
js获取当前页面路由方法
jia2799897415的博客
08-20 7118
在WEB开发中,时常会用到javascript来获取当前页面的url网址信息,在这是我的一些获取url信息的小总结。 下面我们举例一个URL,然后获得它的各个组成部分:https://blog.csdn.net/jia2799897415?spm=1000.2115.3001.5349 1.window.location.href(设置或获取整个 URL 为字符串) var test = window.location.href; alert(test); 返回:https://blog.csdn.ne
vue项目中: 在外部js文件获取当前页面的路由名route.name
weixin_50723565的博客
10-14 8032
js文件中如何获取$route.name
Vue获取当前路由的方式
weixin_50424802的博客
08-28 705
Vue获取当前路由的方式 console.log(this.$route) // 不是$router 打印之后会有详细路由信息 path:路径 params,query: 路由传参 name,hash,fullPath等…
Vue开发:深入理解vue-router前端路由原理与实践
### 一、后端路由前端路由 1. **后端路由**:传统网站中,所有URL都对应服务器上的特定资源。当用户在浏览器中切换URL时,服务器会接收到请求,生成相应的HTML并返回给前端,导致页面刷新。这种方式称为前后端不...
写文章

热门文章

  • 东北大学计算机衰落,中国“最悲情”的3所985大学,实力衰落严重,如今惨遭“降级”... 91590
  • java获取对象类型_java 获取对象的数据类型的方法 8698
  • 服务器安装系统0x0000098,Win10专业版系统出现0xc0000098错误的解决方法 8371
  • inprivate浏览是什么意思_inprivate浏览是什么意思,怎样关闭inprivate浏览器 6155
  • mysql设置最大使用内存_设置MySQL使用大内存页面 3712

最新文章

  • 拯救SQL Server数据库事务日志文件损坏的终极大招
  • 第105期 脑肿瘤图像分割数据集
  • 10 个 C# 关键字和功能
2024年6篇
2021年171篇
2020年20篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

深圳坪山网站建设公司长沙网站运营优化系统台山百度网站优化德阳手机网站优化公司房县网站seo优化排名南平网站优化吴川网站优化优化网站推广教程排名网站优化的好处都有哪些沁阳网站优化哪家有实力顺德网站优化方法巩义网站推广优化哪家售后好网站图片优化软件网站优化哪家不错黄石工厂网站优化哪家好乐亭效果好的网站优化哪里不错寻甸网站优化服务金山区企业网站优化费用鹤壁seo网站优化哪个好济南好的教育行业网站优化优化网站的用那些软件湛江优化网站推广品牌网站seo优化怎么做杭州服务行业网站优化网站搜索优化只信w火20星人民大学网站优化贵港网站运营优化公司中山外贸网站优化流程郑州官网seo网站优化哪个网站优化服务如何临江市网站seo优化排名香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化