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

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

基于Vue CSR的微前端實(shí)現(xiàn)方案實(shí)踐

瀏覽:40日期:2023-01-18 14:28:28

在這里就不講微前端的各種優(yōu)缺點(diǎn),直接假設(shè)你在負(fù)責(zé)一個(gè)中后臺(tái)管理系統(tǒng)的開(kāi)發(fā),所有的業(yè)務(wù)模塊全部都在一個(gè)項(xiàng)目中打包,隨著業(yè)務(wù)量的不斷增長(zhǎng),編譯越來(lái)越慢,你期望可以從老的項(xiàng)目中將新的業(yè)務(wù)進(jìn)行獨(dú)立開(kāi)發(fā)、獨(dú)立部署,以微應(yīng)用的形式嵌入到老項(xiàng)目中。

本篇文章的受眾是那些希望在新老的項(xiàng)目中,在不需要你對(duì)老項(xiàng)目進(jìn)行改動(dòng)老項(xiàng)目的前提下,嵌入微應(yīng)用,如果本篇文章對(duì)你有幫助,請(qǐng)點(diǎn)個(gè):+1:!

核心要素

構(gòu)建生產(chǎn)環(huán)境代碼,輸出遠(yuǎn)程組件所需的 JSON 通過(guò) ajax 請(qǐng)求,拿到這個(gè) JSON 的數(shù)據(jù),傳給 遠(yuǎn)程組件

新項(xiàng)目的搭建

對(duì)于項(xiàng)目的搭建,在這里就不再仔細(xì)的展開(kāi)講了,大家直接看 Genesis 項(xiàng)目快速開(kāi)始的文檔吧

修改編譯代碼

import path from ’path’;import fs from ’fs’;import { Build } from ’@fmfe/genesis-compiler’;import { ssr } from ’./genesis’;const start = async () => { /** * 創(chuàng)建一個(gè)編譯實(shí)例 */ const build = new Build(ssr); /** * 開(kāi)始執(zhí)行編譯程序,構(gòu)建生產(chǎn)環(huán)境應(yīng)用包 */ await build.start(); /** * 編譯完成后,創(chuàng)建一個(gè)渲染器,輸出遠(yuǎn)程組件所需的內(nèi)容 */ const renderer = ssr.createRenderer(); /** * CSR 渲染輸出 JSON */ const result = await renderer.render({ mode: ’csr-json’ }); /** * 將 JSON 保存到客戶端目錄 */ fs.writeFileSync( path.resolve(ssr.outputDirInClient, ’app.json’), JSON.stringify(result.data, null, 4), ’utf8’ );};start();

如果你是根據(jù)官方文檔來(lái)走的話,你只需要自己修改一下 genesis.build.ts 文件即可。如果你自定義了文件名,只要在 await build.start() 方法執(zhí)行完成后,創(chuàng)建一個(gè)渲染器,將 CSR 的渲染結(jié)果保存到一個(gè) JSON 文件即可。

編譯完成后,你得到的大概是這樣的一個(gè)文件

基于Vue CSR的微前端實(shí)現(xiàn)方案實(shí)踐

你只需要將 client

目錄的靜態(tài)文件部署到你的服務(wù)器即可。

老項(xiàng)目遠(yuǎn)程組件加載

假設(shè)你的靜態(tài)資源的基本路徑是 /ssr-genesis/ ,那么你就可以通過(guò) /ssr-genesis/app.json 訪問(wèn)到這個(gè)文件。

在你的老項(xiàng)目上安裝遠(yuǎn)程組件

npm install @fmfe/genesis-remote axios

在你對(duì)應(yīng)的路由上,使用遠(yuǎn)程組件,加載此組件即可。

<template> <div class='app'> <RemoteView :fetch='fetch' /> </div></template><script lang='ts'>import Vue from ’vue’;import axios from ’axios’;import { RemoteView } from ’@fmfe/genesis-remote’;export default Vue.extend({ components: { RemoteView }, methods: { async fetch() { const res = await axios.get(’/ssr-genesis/app.json’); if (res.status === 200) { return res.data; } return null; } }});</script>

多歷史模式的支持

如果你老項(xiàng)目使用歷史模式,在子應(yīng)用也使用歷史模式,會(huì)導(dǎo)致 router.push(’/xxx’) 產(chǎn)生多條歷史記錄,為了解決這個(gè)問(wèn)題,你可以在子應(yīng)用使用 abstract 模式,或者使用 @fmfe/genesis-app 幫你處理多個(gè) Router 實(shí)例使用歷史模式產(chǎn)生的BUG,注意,你需要在新老項(xiàng)目一起使用 @fmfe/genesis-app 包裝后的 Router

拓展

/** * CSR 渲染輸出 HTML */const result = await renderer.render({ mode: ’csr-html’ });/** * 將 html 保存到客戶端目錄 */fs.writeFileSync( path.resolve(ssr.outputDirInClient, ’index.html’), result.data ’utf8’);

如果你僅僅只是想做 CSR 的項(xiàng)目,只需要渲染出 html 即可,和平常的 CSR 項(xiàng)目一樣,將 client 目錄部署到服務(wù)器。

總結(jié)

Genesis 只是一個(gè) Vue SSR 的渲染庫(kù),它不是框架,它只是給你提供了最基礎(chǔ)的 SSR 渲染能力。

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

標(biāo)簽: Vue
相關(guān)文章:
主站蜘蛛池模板: 对辊破碎机_四辊破碎机_双齿辊破碎机_华盛铭重工 | 萃取箱-萃取槽-PVC萃取箱厂家-混合澄清槽- 杭州南方化工设备 | 私人别墅家庭影院系统_家庭影院音响_家庭影院装修设计公司-邦牛影音 | 模切之家-专注服务模切行业的B2B平台! | 高铝砖-高铝耐火球-高铝耐火砖生产厂家-价格【荣盛耐材】 | 定时排水阀/排气阀-仪表三通旋塞阀-直角式脉冲电磁阀-永嘉良科阀门有限公司 | 棕刚玉_白刚玉_铝酸钙-锐石新材料 | 北京自然绿环境科技发展有限公司专业生产【洗车机_加油站洗车机-全自动洗车机】 | 水环真空泵厂家,2bv真空泵,2be真空泵-淄博真空设备厂 | 制丸机,小型中药制丸机,全自动制丸机价格-甘肃恒跃制药设备有限公司 | 定硫仪,量热仪,工业分析仪,马弗炉,煤炭化验设备厂家,煤质化验仪器,焦炭化验设备鹤壁大德煤质工业分析仪,氟氯测定仪 | 深圳希玛林顺潮眼科医院(官网)│深圳眼科医院│医保定点│香港希玛林顺潮眼科中心连锁品牌 | 低温柔性试验仪-土工布淤堵-沥青车辙试验仪-莱博特(天津)试验机有限公司 | 内六角扳手「厂家」-温州市威豪五金工具有限公司 | 法钢特种钢材(上海)有限公司 - 耐磨钢板、高强度钢板销售加工 阀门智能定位器_电液动执行器_气动执行机构-赫尔法流体技术(北京)有限公司 | 北京模型公司-军事模型-工业模型制作-北京百艺模型沙盘公司 | 塑料造粒机「厂家直销」-莱州鑫瑞迪机械有限公司 | 深圳活动策划公司|庆典策划|专业公关活动策划|深圳艺典文化传媒 重庆中专|职高|技校招生-重庆中专招生网 | 百度爱采购运营研究社社群-店铺托管-爱采购代运营-良言多米网络公司 | 炭黑吸油计_测试仪,单颗粒子硬度仪_ASTM标准炭黑自销-上海贺纳斯仪器仪表有限公司(HITEC中国办事处) | 工业插头-工业插头插座【厂家】-温州罗曼电气 | 外观设计_设备外观设计_外观设计公司_产品外观设计_机械设备外观设计_东莞工业设计公司-意品深蓝 | 地图标注|微信高德百度地图标注|地图标记-做地图[ZuoMap.com] | 杭州顺源过滤机械有限公司官网-压滤机_板框压滤机_厢式隔膜压滤机厂家 | 深圳标识制作公司-标识标牌厂家-深圳广告标识制作-玟璟广告-深圳市玟璟广告有限公司 | 空气能采暖,热泵烘干机,空气源热水机组|设备|厂家,东莞高温热泵_正旭新能源 | 粉末包装机,拆包机厂家,价格-上海强牛包装机械设备有限公司 | 冰雕-冰雪世界-大型冰雕展制作公司-赛北冰雕官网 | MVE振动电机_MVE震动电机_MVE卧式振打电机-河南新乡德诚生产厂家 | 济南品牌设计-济南品牌策划-即合品牌策划设计-山东即合官网 | 北京网站建设首页,做网站选【优站网】,专注北京网站建设,北京网站推广,天津网站建设,天津网站推广,小程序,手机APP的开发。 | 北京发电车出租-发电机租赁公司-柴油发电机厂家 - 北京明旺盛安机电设备有限公司 | 深圳工程师职称评定条件及流程_深圳职称评审_职称评审-职称网 | 帽子厂家_帽子工厂_帽子定做_义乌帽厂_帽厂_制帽厂 | 线粒体膜电位荧光探针-细胞膜-标记二抗-上海复申生物科技有限公司 | 存包柜厂家_电子存包柜_超市存包柜_超市电子存包柜_自动存包柜-洛阳中星 | 青岛成人高考_山东成考报名网 | 艺术生文化课培训|艺术生文化课辅导冲刺-济南启迪学校 | 置顶式搅拌器-优莱博化学防爆冰箱-磁驱搅拌器-天津市布鲁克科技有限公司 | 桥架-槽式电缆桥架-镀锌桥架-托盘式桥架 - 上海亮族电缆桥架制造有限公司 | 上海办公室装修,写字楼装修—启鸣装饰设计工程有限公司 |