日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當(dāng)前位置:首頁(yè) > 科技  > 軟件

Vite 為什么快呢?快在哪?說(shuō)一下我自己的理解吧

來(lái)源: 責(zé)編: 時(shí)間:2024-03-25 17:36:49 189觀(guān)看
導(dǎo)讀由于這幾個(gè)月使用了Vue3 + TS + Vite進(jìn)行開(kāi)發(fā),并且是真的被Vite強(qiáng)力吸粉了!!!Vite最大的優(yōu)點(diǎn)就是:快!!!非常快!!!說(shuō)實(shí)話(huà),使用Vite開(kāi)發(fā)之后,我都有點(diǎn)不想回到以前Webpack的項(xiàng)目開(kāi)發(fā)了,因?yàn)橹暗捻?xiàng)目啟動(dòng)項(xiàng)目需要30s以上,修改代碼更新

由于這幾個(gè)月使用了Vue3 + TS + Vite進(jìn)行開(kāi)發(fā),并且是真的被Vite強(qiáng)力吸粉了!!!Vite最大的優(yōu)點(diǎn)就是:快!!!非常快!!!qxi28資訊網(wǎng)——每日最新資訊28at.com

說(shuō)實(shí)話(huà),使用Vite開(kāi)發(fā)之后,我都有點(diǎn)不想回到以前Webpack的項(xiàng)目開(kāi)發(fā)了,因?yàn)橹暗捻?xiàng)目啟動(dòng)項(xiàng)目需要30s以上,修改代碼更新也需要2s以上,但是現(xiàn)在使用Vite,差不多啟動(dòng)項(xiàng)目只需要1s,而修改代碼更新也是超級(jí)快!!!qxi28資訊網(wǎng)——每日最新資訊28at.com

那到底是為什么Vite可以做到這么快呢?官方給的解釋?zhuān)娴暮芄俜健!K越裉煳蚁胗帽容^通俗易懂的話(huà)來(lái)講講,希望大家能看一遍就懂。qxi28資訊網(wǎng)——每日最新資訊28at.com

qxi28資訊網(wǎng)——每日最新資訊28at.com

問(wèn)題現(xiàn)狀

1.ES模塊化支持的問(wèn)題

咱們都知道,以前的瀏覽器是不支持ES module的,比如:qxi28資訊網(wǎng)——每日最新資訊28at.com

// index.jsimport { add } from './add.js'import { sub } from './sub.js'console.log(add(1, 2))console.log(sub(1, 2))// add.jsexport const add = (a, b) => a + b // sub.jsexport const sub = (a, b) => a - b 

你覺(jué)得這樣的一段代碼,放到瀏覽器能直接運(yùn)行嗎?答案是不行的哦。那怎么解決呢?這時(shí)候打包工具出場(chǎng)了,他將index.js、add.js、sub.js這三個(gè)文件打包在一個(gè)bundle.js文件里,然后在項(xiàng)目index.html中直接引入bundle.js,從而達(dá)到代碼效果。一些打包工具,都是這么做的,例如webpack、Rollup、Parcelqxi28資訊網(wǎng)——每日最新資訊28at.com

2.項(xiàng)目啟動(dòng)與代碼更新的問(wèn)題

這個(gè)不用說(shuō),大家都懂:qxi28資訊網(wǎng)——每日最新資訊28at.com

  • 項(xiàng)目啟動(dòng):隨著項(xiàng)目越來(lái)越大,啟動(dòng)個(gè)項(xiàng)目可能要幾分鐘
  • 代碼更新:隨著項(xiàng)目越來(lái)越大,修改一小段代碼,保存后都要等幾秒才更新

解決問(wèn)題

1.解決啟動(dòng)項(xiàng)目緩慢

Vite在打包的時(shí)候,將模塊分成兩個(gè)區(qū)域依賴(lài)和源碼:qxi28資訊網(wǎng)——每日最新資訊28at.com

  • 依賴(lài):一般是那種在開(kāi)發(fā)中不會(huì)改變的JavaScript,比如組件庫(kù),或者一些較大的依賴(lài)(可能有上百個(gè)模塊的庫(kù)),這一部分使用esbuild來(lái)進(jìn)行預(yù)構(gòu)建依賴(lài),esbuild使用的是 Go 進(jìn)行編寫(xiě),比 JavaScript 編寫(xiě)的打包器預(yù)構(gòu)建依賴(lài)快 10-100倍
  • 源碼:一般是哪種好修改幾率比較大的文件,例如JSX、CSS、vue這些需要轉(zhuǎn)換且時(shí)常會(huì)被修改編輯的文件。同時(shí),這些文件并不是一股腦全部加載,而是可以按需加載(例如路由懶加載)。Vite會(huì)將文件轉(zhuǎn)換后,以es module的方式直接交給瀏覽器,因?yàn)楝F(xiàn)在的瀏覽器大多數(shù)都直接支持es module,這使性能提高了很多,為什么呢?

咱們看下面兩張圖:qxi28資訊網(wǎng)——每日最新資訊28at.com

第一張圖,是以前的打包模式,就像之前舉的index.js、add.js、sub.js的例子,項(xiàng)目啟動(dòng)時(shí),需要先將所有文件打包成一個(gè)文件bundle.js,然后在html引入,這個(gè)多文件 -> bundle.js的過(guò)程是非常耗時(shí)間的。qxi28資訊網(wǎng)——每日最新資訊28at.com

qxi28資訊網(wǎng)——每日最新資訊28at.com

第二張圖,是Vite的打包方式,剛剛說(shuō)了,Vite是直接把轉(zhuǎn)換后的es module的JavaScript代碼,扔給支持es module的瀏覽器,讓瀏覽器自己去加載依賴(lài),也就是把壓力丟給了瀏覽器,從而達(dá)到了項(xiàng)目啟動(dòng)速度快的效果。qxi28資訊網(wǎng)——每日最新資訊28at.com

qxi28資訊網(wǎng)——每日最新資訊28at.com

2.解決更新緩慢

剛剛說(shuō)了,項(xiàng)目啟動(dòng)時(shí),將模塊分成依賴(lài)和源碼,當(dāng)你更新代碼時(shí),依賴(lài)就不需要重新加載,只需要精準(zhǔn)地找到是哪個(gè)源碼的文件更新了,更新相對(duì)應(yīng)的文件就行了。這樣做使得更新速度非常快。qxi28資訊網(wǎng)——每日最新資訊28at.com

Vite 同時(shí)利用 HTTP 頭來(lái)加速整個(gè)頁(yè)面的重新加載(再次讓瀏覽器為我們做更多事情):源碼模塊的請(qǐng)求會(huì)根據(jù) 304 Not Modified 進(jìn)行協(xié)商緩存,而依賴(lài)模塊請(qǐng)求則會(huì)通過(guò) Cache-Control: max-age=31536000,immutable 進(jìn)行強(qiáng)緩存,因此一旦被緩存它們將不需要再次請(qǐng)求。qxi28資訊網(wǎng)——每日最新資訊28at.com

生產(chǎn)環(huán)境

剛剛咱們說(shuō)的都是開(kāi)發(fā)環(huán)境,也說(shuō)了,Vite在是直接把轉(zhuǎn)化后的es module的JavaScript,扔給瀏覽器,讓瀏覽器根據(jù)依賴(lài)關(guān)系,自己去加載依賴(lài)。qxi28資訊網(wǎng)——每日最新資訊28at.com

那有人就會(huì)說(shuō)了,那放到生產(chǎn)環(huán)境時(shí),是不是可以不打包,直接在開(kāi)個(gè)Vite服務(wù)就行,反正瀏覽器會(huì)自己去根據(jù)依賴(lài)關(guān)系去自己加載依賴(lài)。答案是不行的,為啥呢:qxi28資訊網(wǎng)——每日最新資訊28at.com

  • 你代碼是放在服務(wù)器的,過(guò)多的瀏覽器加載依賴(lài)肯定會(huì)引起更多的網(wǎng)絡(luò)請(qǐng)求
  • 為了在生產(chǎn)環(huán)境中獲得最佳的加載性能,最好還是將代碼進(jìn)行tree-shaking、懶加載和 chunk 分割、CSS處理,這些優(yōu)化操作,目前esbuild還不怎么完善

所以Vite最后的打包是使用了Rollup。qxi28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-79148-0.htmlVite 為什么快呢?快在哪?說(shuō)一下我自己的理解吧

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

上一篇: .NET6中的await原理淺析

下一篇: 關(guān)于 JSON.stringify,你不知道的六件事

標(biāo)簽:
  • 熱門(mén)焦點(diǎn)
  • 一文看懂為蘋(píng)果Vision Pro開(kāi)發(fā)應(yīng)用程序

    譯者 | 布加迪審校 | 重樓蘋(píng)果的Vision Pro是一款混合現(xiàn)實(shí)(MR)頭戴設(shè)備。Vision Pro結(jié)合了虛擬現(xiàn)實(shí)(VR)和增強(qiáng)現(xiàn)實(shí)(AR)的沉浸感。其高分辨率顯示屏、先進(jìn)的傳感器和強(qiáng)大的處理能力
  • 三言?xún)烧Z(yǔ)說(shuō)透設(shè)計(jì)模式的藝術(shù)-單例模式

    寫(xiě)在前面單例模式是一種常用的軟件設(shè)計(jì)模式,它所創(chuàng)建的對(duì)象只有一個(gè)實(shí)例,且該實(shí)例易于被外界訪(fǎng)問(wèn)。單例對(duì)象由于只有一個(gè)實(shí)例,所以它可以方便地被系統(tǒng)中的其他對(duì)象共享,從而減少
  • 分享六款相見(jiàn)恨晚的PPT模版網(wǎng)站, 祝你做出精美的PPT!

    1、OfficePLUSOfficePLUS網(wǎng)站旨在為全球Office用戶(hù)提供豐富的高品質(zhì)原創(chuàng)PPT模板、實(shí)用文檔、數(shù)據(jù)圖表及個(gè)性化定制服務(wù)。優(yōu)點(diǎn):OfficePLUS是微軟官方網(wǎng)站,囊括PPT模板、Word模
  • 之家push系統(tǒng)迭代之路

    前言在這個(gè)信息爆炸的互聯(lián)網(wǎng)時(shí)代,能夠及時(shí)準(zhǔn)確獲取信息是當(dāng)今社會(huì)要解決的關(guān)鍵問(wèn)題之一。隨著之家用戶(hù)體量和內(nèi)容規(guī)模的不斷增大,傳統(tǒng)的靠"主動(dòng)拉"獲取信息的方式已不能滿(mǎn)足用
  • 如何通過(guò)Python線(xiàn)程池實(shí)現(xiàn)異步編程?

    線(xiàn)程池的概念和基本原理線(xiàn)程池是一種并發(fā)處理機(jī)制,它可以在程序啟動(dòng)時(shí)創(chuàng)建一組線(xiàn)程,并將它們置于等待任務(wù)的狀態(tài)。當(dāng)任務(wù)到達(dá)時(shí),線(xiàn)程池中的某個(gè)線(xiàn)程會(huì)被喚醒并執(zhí)行任務(wù),執(zhí)行完任
  • 使用LLM插件從命令行訪(fǎng)問(wèn)Llama 2

    最近的一個(gè)大新聞是Meta AI推出了新的開(kāi)源授權(quán)的大型語(yǔ)言模型Llama 2。這是一項(xiàng)非常重要的進(jìn)展:Llama 2可免費(fèi)用于研究和商業(yè)用途。(幾小時(shí)前,swyy發(fā)現(xiàn)它已從LLaMA 2更名為L(zhǎng)la
  • “又被陳思誠(chéng)騙了”

    作者|張思齊 出品|眾面(ID:ZhongMian_ZM)如今的國(guó)產(chǎn)懸疑電影,成了陳思誠(chéng)的天下。最近大爆電影《消失的她》票房突破30億斷層奪魁暑期檔,陳思誠(chéng)再度風(fēng)頭無(wú)兩。你可以說(shuō)陳思誠(chéng)的
  • 東方甄選單飛:有些鳥(niǎo)注定是關(guān)不住的

    文/彭寬鴻編輯/羅卿東方甄選創(chuàng)始人俞敏洪帶隊(duì)的“7天甘肅行”直播活動(dòng)已在近日順利收官。成立后一年多時(shí)間里,東方甄選要脫離抖音自立門(mén)戶(hù)的傳聞不絕于耳,“7
  • 華為將推出盤(pán)古數(shù)字人大模型 可幫助用戶(hù)12小時(shí)完成數(shù)字人生成

    在今日舉行的2023年華為云數(shù)字文娛AI創(chuàng)新峰會(huì)上,華為云全球Marketing與銷(xiāo)售服務(wù)總裁石冀琳表示,華為云將在后續(xù)推出盤(pán)古數(shù)字人大模型,可幫助用戶(hù)12小
Top 主站蜘蛛池模板: 沂源县| 莱西市| 东兰县| 临西县| 西林县| 商都县| 民权县| 淳化县| 东山县| 阿鲁科尔沁旗| 鄱阳县| 长海县| 尖扎县| 嘉定区| 宜丰县| 西和县| 吉安县| 棋牌| 咸丰县| 承德县| 四川省| 尚义县| 惠来县| 牙克石市| 泸定县| 景洪市| 长治市| 睢宁县| 泰兴市| 夏邑县| 郎溪县| 莎车县| 甘德县| 高唐县| 松潘县| 灌阳县| 西平县| 通城县| 彰武县| 福鼎市| 武川县|