电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

基于Vue實現(xiàn)微前端的示例代碼

瀏覽:51日期:2023-01-25 08:59:32

   前端微服務(wù)化一直是前端社區(qū)的一個熱門話題,早在2018年就有不少開發(fā)者提出過各種解決方案?;蛟S是未得精髓,個人認(rèn)為基于Web Components的實現(xiàn)脫離整體打包邏輯的,難以工程化。直到遇到了vue-cli 3,子模塊打包的問題得以迎刃而解。2019年秋,團(tuán)隊內(nèi)部初步實現(xiàn)前端分布式開發(fā),解決了集中式開發(fā)部署的“老大難”問題。個人認(rèn)為,隨著WebAssembly等技術(shù)的興起,“前端后移”越來越明顯,前端微服務(wù)會成為大前端的一個趨勢。下面簡單分享下本人對前端微服務(wù)的一些拙見。

前言

   目前的前端技術(shù),大部分是基于JavaScript棧極其衍生的技術(shù)棧體系。從當(dāng)年被人戲稱為“玩具語言”發(fā)展到今天,JavaScript的經(jīng)歷可謂命途多舛。早期缺少必要的規(guī)范,讓JavaScript的生態(tài)自由的有點泛濫。本就是解析型語言,還多重標(biāo)準(zhǔn),誰也不能預(yù)測下一行代碼會產(chǎn)生什么結(jié)果。隨著Node.js的到來,“前端后移”歷史的車輪開始轉(zhuǎn)動了。前端的打包不再是簡單地混淆壓縮一下,出現(xiàn)了import/export模塊的概念,后端工程師嗅到了熟悉的味道。W3C的ES2015標(biāo)準(zhǔn),前端模塊化開始深入人心,Webpack逐漸成了前端開發(fā)的事實標(biāo)準(zhǔn),TpyeScript等強類型衍生語言也開始出現(xiàn),大前端圈空前繁榮。隨著大量了后端語言(特別是Java這類面向?qū)ο笳Z言)的標(biāo)準(zhǔn)加入,前端開發(fā)終于從Web開發(fā)中脫離出來自立門戶。前端工程化伴隨著“前后端分離”的潮流,席卷了整個互聯(lián)網(wǎng)。GitHub等開源社區(qū)上前端項目如雨后春筍般涌現(xiàn)。

痛點

   前端工程化固然是好事,但前端項目一多就存在難以整合的問題。特別是前端技術(shù)棧不一致的情況下,React團(tuán)隊開發(fā)的小功能不能被Vue團(tuán)隊復(fù)用。前端工程也期待能擁有后端的遠(yuǎn)程調(diào)用RPC接口。通過調(diào)用前端RPC接口就能跨平臺渲染。這就好比是JVM平臺都能解析class字節(jié)碼一樣方便。目前整合不同系統(tǒng)的方案大部分是使用iframe簡單嵌套,不優(yōu)雅但能用。谷歌提出的WebAssembly可能是不錯的方案,但離商用太遠(yuǎn)。

方案

目前如何有效整合前端應(yīng)用呢?綜合考慮了新老系統(tǒng)的特點,大致分了三種情況。

基于Vue實現(xiàn)微前端的示例代碼

關(guān)鍵代碼如下:

<div class='puzzle-box'> <div v-for='puzzle in puzzles' :key='puzzle.id' :style='’height:’ + puzzle.height + ’;width:’ + puzzle.width'> <div v-if='puzzle.type === ’iframe’'> <iframe :src='http://www.hdgsjgj.cn/bcjs/puzzle.src' :style='’width:100%;height:’ + puzzle.height '></iframe> </div> <div v-if='puzzle.type === ’module’'> <puzzle-module v-bind:url='puzzle.url'></puzzle-module> </div> <div v-if='puzzle.type === ’native’'> <div v-append='puzzle.content' :style='’width:100%;height:’ + puzzle.height'></div> </div> </div></div><script> const content=`<h1>前端開發(fā)迭代計劃</h1><table class='table table-bordered table-striped table-hover'><tr><th>序號</th><th>需求</th><th>優(yōu)先級</th><th>負(fù)責(zé)人</th><th>計劃完成日期</th></tr><tr><td>1</td><td>大數(shù)據(jù)的自助分析平臺</td><td>高</td><td>工程師A</td><td>2020-04-08</td></tr><tr><td>2</td><td>自定義模板、調(diào)用時傳入XML,引擎生成報表結(jié)果</td><td>高</td><td>工程師A</td><td>2020-04-08</td></tr></table>` const puzzles = [ { id: 1, type: ’module’, url: ’http://localhost:9081/list.js’,width: ’100%’,height: ’400px’}, { id: 2, type: ’native’, content: content, width: ’50%’, height: ’400px’}, { id: 3, type: ’iframe’, src: ’http://cn.bing.com/’,width: ’50%’,height: ’400px’}, ]</script>

iframe嵌入

iframe嵌入是是目前大多數(shù)人使用的方式,基本沒有開發(fā)量。

原生html嵌入

這種方式外部接口提供html文本,本地系統(tǒng)劃一塊地方出來給你自己渲染,如劃一個600x800的div用來渲染報表。使用vue-append作為渲染組件。這種方式可以擺脫iframe,自由度也比較大。缺點是不容易實現(xiàn)規(guī)范化,有點像內(nèi)嵌的廣告頁面。

模塊化嵌入

使用模塊打包的概念,通過webpack將子模塊各個分拆獨立打包成模塊再通過靜態(tài)文件方式加載到外部系統(tǒng)做展現(xiàn)。這也是目前團(tuán)隊內(nèi)部使用的方案。通過遍歷模塊目錄(一般就是業(yè)務(wù)vue頁面)批量生成配置文件。

....... function readDirectory(directory) { fs.readdirSync(directory).forEach((file) => { const fullPath = path.resolve(directory, file); if (fs.statSync(fullPath).isDirectory()) { if (scanSubDirectories) readDirectory(fullPath); return; } if (!regularExpression.test(fullPath)) return; //files[directory.substring(directory.lastIndexOf(path.sep))+ path.sep +file] = fullPath files[directory.substring(parentPath.length+1)+ path.sep +file] = fullPath //console.log(files) }); } .......

最終就會按模塊輸出打包好的js文件,發(fā)布是可以實現(xiàn)按需集成。

基于Vue實現(xiàn)微前端的示例代碼

到此這篇關(guān)于基于Vue實現(xiàn)微前端的文章就介紹到這了,更多相關(guān)基于Vue實現(xiàn)微前端內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Vue
相關(guān)文章:
主站蜘蛛池模板: 六维力传感器_三维力传感器_二维力传感器-南京神源生智能科技有限公司 | 智成电子深圳tdk一级代理-提供TDK电容电感贴片蜂鸣器磁芯lambda电源代理经销,TDK代理商有哪些TDK一级代理商排名查询。-深圳tdk一级代理 | 山东包装,山东印刷厂,济南印刷厂-济南富丽彩印刷有限公司 | 代办建筑资质升级-建筑资质延期就找上海国信启航 | 电动垃圾车,垃圾清运车-江苏速利达机车有限公司 | ★济南领跃标识制作公司★济南标识制作,标牌制作,山东标识制作,济南标牌厂 | 高精度-恒温冷水机-螺杆式冰水机-蒸发冷冷水机-北京蓝海神骏科技有限公司 | 写方案网_方案策划方案模板下载 事迹材料_个人事迹名人励志故事 | 砍排机-锯骨机-冻肉切丁机-熟肉切片机-预制菜生产线一站式服务厂商 - 广州市祥九瑞盈机械设备有限公司 | 上海平衡机-单面卧式动平衡机-万向节动平衡机-圈带动平衡机厂家-上海申岢动平衡机制造有限公司 | 电脑刺绣_绣花厂家_绣花章仔_织唛厂家-[源欣刺绣]潮牌刺绣打版定制绣花加工厂家 | 防腐储罐_塑料储罐_PE储罐厂家_淄博富邦滚塑防腐设备科技有限公司 | 【北京写字楼出租_写字楼租赁_办公室出租网/出售】-远行地产官网 | 青岛侦探_青岛侦探事务所_青岛劝退小三_青岛婚外情取证-青岛王军侦探事务所 | 合肥通道闸-安徽车牌识别-人脸识别系统厂家-安徽熵控智能技术有限公司 | 中天寰创-内蒙古钢结构厂家|门式刚架|钢结构桁架|钢结构框架|包头钢结构煤棚 | 皮带机-带式输送机价格-固定式胶带机生产厂家-河南坤威机械 | 期货软件-专业期货分析软件下载-云智赢 | 热熔胶网膜|pes热熔网膜价格|eva热熔胶膜|热熔胶膜|tpu热熔胶膜厂家-苏州惠洋胶粘制品有限公司 | 猪I型/II型胶原-五克隆合剂-细胞冻存培养基-北京博蕾德科技发展有限公司 | 讲师宝经纪-专业培训机构师资供应商_培训机构找讲师、培训师、讲师经纪就上讲师宝经纪 | 动库网动库商城-体育用品专卖店:羽毛球,乒乓球拍,网球,户外装备,运动鞋,运动包,运动服饰专卖店-正品运动品网上商城动库商城网 - 动库商城 | 排烟防火阀-消防排烟风机-正压送风口-厂家-价格-哪家好-德州鑫港旺通风设备有限公司 | 电缆桥架生产厂家_槽式/梯式_热镀锌线槽_广东东莞雷正电气 | 除湿机|工业除湿机|抽湿器|大型地下室车间仓库吊顶防爆除湿机|抽湿烘干房|新风除湿机|调温/降温除湿机|恒温恒湿机|加湿机-杭州川田电器有限公司 | 山西3A认证|太原AAA信用认证|投标AAA信用证书-山西AAA企业信用评级网 | 执业药师报名条件,考试时间,考试真题,报名入口—首页 | 花纹铝板,合金铝卷板,阴极铝板-济南恒诚铝业有限公司 | 宝元数控系统|对刀仪厂家|东莞机器人控制系统|东莞安川伺服-【鑫天驰智能科技】 | 混合气体腐蚀试验箱_盐雾/硫化氢/气体腐蚀试验箱厂家-北京中科博达 | 福兰德PVC地板|PVC塑胶地板|PVC运动地板|PVC商用地板-中国弹性地板系统专业解决方案领先供应商! 福建成考网-福建成人高考网 | 上海瑶恒实业有限公司|消防泵泵|离心泵|官网 | 除尘器布袋骨架,除尘器滤袋,除尘器骨架,电磁脉冲阀膜片,卸灰阀,螺旋输送机-泊头市天润环保机械设备有限公司 | 细胞染色-流式双标-试剂盒免费代做-上海研谨生物科技有限公司 | 彼得逊采泥器-定深式采泥器-电动土壤采样器-土壤样品风干机-常州索奥仪器制造有限公司 | 别墅图纸超市|别墅设计图纸|农村房屋设计图|农村自建房|别墅设计图纸及效果图大全 | 南京技嘉环保科技有限公司-杀菌除臭剂|污水|垃圾|厕所|橡胶厂|化工厂|铸造厂除臭剂 | 最新电影-好看的电视剧大全-朝夕电影网| 高压互感器,电流互感器,电压互感器-上海鄂互电气科技有限公司 | 长沙印刷厂-包装印刷-画册印刷厂家-湖南省日大彩色印务有限公司 青州搬家公司电话_青州搬家公司哪家好「鸿喜」青州搬家 | 压滤机-洗沙泥浆处理-压泥机-山东创新华一环境工程有限公司 |