精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Vue.js + Astro 比 Vue SPA 更好嗎?

開發(fā) 項目管理
最近有很多開發(fā)者宣布他們已經(jīng)將網(wǎng)站遷移到Astro。這通常伴隨著一張接近完美的Lighthouse分數(shù)的截圖和一系列火箭表情符號。

最近有很多開發(fā)者宣布他們已經(jīng)將網(wǎng)站遷移到Astro。這通常伴隨著一張接近完美的Lighthouse分數(shù)的截圖和一系列火箭表情符號。

像大多數(shù)人一樣,我發(fā)現(xiàn)無休止的新框架會讓人感到厭倦。但我對Astro做了一些研究,認為它真的值得一試。

在本文中,我將向您展示如何使用 Astro 構(gòu)建基于 Vue 的應(yīng)用程序,我們將了解其獨特的架構(gòu)如何帶來比單頁應(yīng)用程序 (SPA) 更好的性能。

SPA 架構(gòu)回顧

在我們看到 Astro 的實際應(yīng)用之前,我們需要了解它的架構(gòu)。為此,讓我們首先提醒自己單頁應(yīng)用架構(gòu)的優(yōu)缺點。

SPA 將網(wǎng)站的所有功能和內(nèi)容抽象為 JavaScript 組件。這很棒,因為它使網(wǎng)站的開發(fā)變得容易。

這種方法的缺點是當網(wǎng)站投入生產(chǎn)時。所有這些JavaScript組件被捆綁在一起成為一個大的應(yīng)用程序。由于體積太大,瀏覽器下載和運行的速度可能會很慢。

當然,你可以通過代碼拆分來優(yōu)化這個捆綁。但是,瀏覽器仍然會有一些前期成本必須支付,只是為了啟動網(wǎng)站。

<!-- 典型的 SPA 頁面 -->
<head>
<script src="/app.js"></script>
</head>
<body>
<!-- 在 app.js 加載之前,此頁面沒有有意義的內(nèi)容 -->
<div id="app"></div>
</body>

Islands architectureIslands

架構(gòu),Astro使用的架構(gòu),也使用了組件。然而,與單頁應(yīng)用程序不同的是,這些組件并沒有捆綁到一個 JavaScript 包中。

相反,每個組件都被視為一個獨立的迷你應(yīng)用程序,與所有其他組件隔離存在。

例如,如果您的頁面有一個基于 JavaScript 的導航欄,那將是一個迷你應(yīng)用程序。如果它還具有 JavaScript 驅(qū)動的圖像輪播,那就是另一個迷你應(yīng)用程序。等等。

但是,如果這些組件沒有被捆綁,它們?nèi)绾伪话陧椖恐?我將在下一節(jié)解釋這個問題。

<!-- Islands architecture -->
<body>
<MyNavBar /> <!-- navbar mini app -->
<main>
<MyCarousel /> <!-- carousel mini app -->
<div class="content">
<!-- more page content... -->
</div>
</main>
</body>

服務(wù)器渲染的組件

Astro 主要是一個靜態(tài)站點生成器。它適用于大多數(shù)支持服務(wù)器渲染組件的 UI 庫,包括 Vue、Svelte、Preact、React 和 Lit。

因此,當Astro構(gòu)建你的應(yīng)用程序時,每個JavaScript組件都在服務(wù)器端加載,內(nèi)容是”快照“。這個快照被添加到靜態(tài)頁面上。

服務(wù)器渲染不是 Astro 特有的功能,但在 SPA 中這是一個可選功能,而在 Astro 中,這是一個至關(guān)重要的功能,我們將在下面看到。

<!-- 開發(fā)內(nèi)容 -->
<body>
<MyForm /> <!-- JS component -->
</body>

<!-- 快照內(nèi)容 -->
<body>
<form> <!-- Server rendered JS component -->
<input type="text" >
<!-- ... -->
</form>
</body>

Progressive hydration

這就是Astro的神奇之處——通過islands架構(gòu)、服務(wù)器渲染組件和漸進式水合的組合。

由于我們的頁面被劃分為服務(wù)器渲染的迷你應(yīng)用程序,互動層(JS)可以獨立加載,并且只在需要的時候加載。

例如,您可能有一個交互式表單。此表單位于頁面下方,位于視口之外。

表單是服務(wù)器渲染的,所以我們在頁面上看到它。但是,在用戶將其滾動到視圖中之前,不需要加載昂貴的 JavaScript。

這就是 Astro 中“漸進式水合作用”的含義——我們只在需要時加載 JavaScript。

建立一個 Vue + Astro 項目

現(xiàn)在理論已經(jīng)講完了,讓我們來看看它的實際效果吧!

要開始創(chuàng)建 Astro 項目,我們將首先創(chuàng)建一個目錄:

$ mkdir vue-astro

然后運行Astro 安裝向?qū)В?/p>

$ npm init astro

安裝向?qū)⒃试S我們選擇“Vue”作為我們選擇的框架。這將創(chuàng)建一個包含 Vue 組件的樣板項目。

Astro組件

Astro 頁面保存在 src/pages 目錄中。在默認安裝中,我們看到一個文件 index.astro,如下所示。

src/pages/index.astro

---
import VueCounter from '../components/VueCounter.vue';
let title = 'My Astro Site';
---
<html lang="en">
<head>
<!-- ... -->
<title>{title}</title>
</head>
<body>
<main>
<!-- ... -->
<VueCounter client:visible />
</main>
</body>
</html>

Astro 具有單文件組件樣式,與 Vue 類似,但有一些重要區(qū)別。

首先,在文件的頂部,我們看到似乎是前端內(nèi)容,即用 --- 劃定的內(nèi)容。這是在服務(wù)器端運行的JavaScript。這不會被發(fā)送到客戶端。

在這里我們可以看到兩件重要的事情:首先,我們正在導入一個Vue組件(你可以從任何支持的框架中導入組件)。另外,我們正在設(shè)置一個值:title。

這里聲明的所有變量在模板中都是可用的。你會注意到 title 在模板中以類似JSX的語法進行插值。

src/pages/index.astro

---
...
let title = 'My Astro Site';
---
<html lang="en">
<head>
<!-- ... -->
<title>{title}</title>
</head>
<!-- ... -->

接下來,注意模板中聲明的組件。

默認情況下,組件在客戶端是不交互的,只是由Astro進行服務(wù)器渲染。

如果我們想讓組件交互,即加載 JavaScript,我們需要給它一個指令告訴客戶端何時加載它。

在這種情況下,client:visible 指令告訴 Astro 當組件在頁面中可見時使 VueCounter交互。

如果發(fā)生這種情況,Astro 將從服務(wù)器請求該組件的 JS 并對其進行水合。

---
import VueCounter from '../components/VueCounter.vue';
...
---
<html lang="en">
<head><!-- ... --></head>
<body>
<main>
<!-- ... -->
<VueCounter client:visible />
</main>
</body>
</html>

加載Astro

現(xiàn)在讓我們運行 Astro 的開發(fā)服務(wù)器來查看我們的項目。

npm run dev

在頁面的源代碼中,你會看到在文檔中沒有任何的JavaScript捆綁! 不過,我們確實看到了服務(wù)器渲染的Vue組件。

我們還看到 Astro 在文檔正文的底部添加了一個腳本。在這里,它加載了一個模塊來水合 Vue 組件。

該模塊將下載 Vue 組件和依賴項(Vue 框架),而不會阻塞渲染。

index.html

<!-- Page source -->
<body>
<!-- server rendered component -->
<div id="vue" class="counter">
<button>-</button>
<pre>0</pre>
<button>+</button>
</div>

<!-- 添加的代碼片段以水合 Vue 組件 -->
<script type="module">
import setup from '/_astro_frontend/hydrate/visible.js';
// ...
</script>

為什么 Vue + Astro 可能比 Vue SPA 更好

要了解為什么 Astro 在 UX 方面可以擊敗單頁應(yīng)用程序,讓我們對網(wǎng)站加載時發(fā)生的情況進行簡化分解。

  1. index.html已經(jīng)加載。它沒有JS捆綁,但它包括你的服務(wù)器渲染的組件,所以用戶已經(jīng)可以看到你的網(wǎng)站內(nèi)容--只是還沒有互動。
  2. 組件所需的任何JS現(xiàn)在將以一系列獨立腳本的形式異步下載。
  3. 下載這些腳本后,它們將被解析并運行。現(xiàn)在可以進行交互了。

現(xiàn)在讓我們想象一下,我們把這個網(wǎng)站重新建成一個單頁的應(yīng)用程序。它現(xiàn)在會如何加載?

  1. index.html被加載。由于該頁面不包含任何內(nèi)容,用戶無法看到任何東西。瀏覽器將開始下載捆綁程序。
  2. 下載 JS 包后,瀏覽器就會對其進行解析。用戶仍然看不到任何東西。
  3. 一旦 JS 包被解析并運行,頁面內(nèi)容就生成了。用戶現(xiàn)在可以查看應(yīng)用程序并與之交互。

簡單的說:Astro 網(wǎng)站幾乎可以立即提供可見的內(nèi)容,不像 SPA 需要先下載并運行 JS 包。

(Astro應(yīng)用也會稍早提供互動性,因為它可能不需要下載那么多JS,因為沒有SPA外殼、路由器等)

最后的想法

Astro 的架構(gòu)可能是比單頁應(yīng)用程序更好的選擇,因為它無需 JavaScript 即可使內(nèi)容可見,并且僅在需要時加載 JS。

從理論上講,單頁應(yīng)用程序可以通過預(yù)渲染和代碼拆分的組合來實現(xiàn)類似的效果。不同之處在于,Astro 網(wǎng)站默認以這種方式進行優(yōu)化,因為您需要選擇加入交互性和 JS。

當然,并不是每個應(yīng)用程序都會從一這種架構(gòu)中受益,因為 SPA 更適合某些類型的應(yīng)用程序,例如高度動態(tài)和交互式的應(yīng)用程序。所以我們不會期望 SPA 架構(gòu)會消失。

原文:https://vuejsdevelopers.com/2021/10/26/vue-astro/

作者:Anthony Gore


責任編輯:武曉燕 來源: 前端全棧開發(fā)者
相關(guān)推薦

2019-08-14 08:00:00

Arch LinuxUbuntuLinux

2016-11-04 19:58:39

vue.js

2017-07-04 17:55:37

Vue.js插件開發(fā)

2018-04-04 10:32:13

前端JavascriptVue.js

2021-01-22 11:47:27

Vue.js響應(yīng)式代碼

2020-09-07 14:40:20

Vue.js構(gòu)建工具前端

2016-11-01 19:10:33

vue.js前端前端框架

2017-07-14 10:10:08

Vue.jsMixin

2017-07-20 11:18:22

Vue.jsMVVMMVC

2024-05-13 08:04:26

Vue.jsWeb應(yīng)用程序

2017-07-11 18:00:21

vue.js數(shù)據(jù)組件

2022-04-04 16:53:56

Vue.js設(shè)計框架

2020-11-26 15:30:05

VueReac前端

2023-03-16 14:29:48

Vue.js測試

2024-01-18 11:50:28

2019-07-26 14:40:58

Vue.jsSocket.IO前端

2017-08-30 17:10:43

前端JavascriptVue.js

2016-09-21 13:32:13

JavascriptWeb前端

2020-09-16 06:12:30

Vue.js 3.0Suspense組件前端

2022-03-04 07:37:16

DenoNode.js項目
點贊
收藏

51CTO技術(shù)棧公眾號

国产不卡在线播放| 性少妇videosexfreexxx片| 午夜小视频在线观看| 精品无码三级在线观看视频| 久久91精品国产91久久跳| 黑人巨大猛交丰满少妇| 9999热视频在线观看| 国产亚洲婷婷免费| 亚洲淫片在线视频| 男女视频免费看| 日韩在线视频精品| 欧美精品一区二区三区一线天视频| 成年人视频网站免费观看| a级片免费视频| 欧美专区一区二区三区| 久久午夜a级毛片| 女尊高h男高潮呻吟| 国产日本亚洲| 色老汉一区二区三区| 日本大胆人体视频| 在线激情网站| 国产成人高清| 7777精品久久久大香线蕉| 日本国产在线播放| av在线网址观看| 国产女同互慰高潮91漫画| 国产精品久久久久久久久久直播| 中文字幕一区二区在线视频| 一区二区三区福利| 欧美精品少妇videofree| 伊人影院综合网| 久久悠悠精品综合网| 51精品国自产在线| 男女爽爽爽视频| 三级中文字幕在线观看| 一区二区三区四区在线播放 | 国产精品视频一区二区三区综合| 午夜精品久久久久久久99水蜜桃| 综合操久久久| 在线视频三区| 国产欧美精品日韩区二区麻豆天美| 国产日韩一区二区三区| av一级黄色片| 久久99久久精品| 国产裸体写真av一区二区| 69视频免费看| 日日摸夜夜添夜夜添国产精品| 91超碰中文字幕久久精品| 久久久久久久久久久久久久免费看 | 国产理论片在线观看| 国产亚洲毛片在线| 欧美大尺度激情区在线播放 | 欧美激情欧美| 在线看日韩欧美| 精品人伦一区二区三电影| 亚洲福利网站| 亚洲精品视频网上网址在线观看 | 美女喷白浆视频| 欧美二三四区| 欧美午夜一区二区| 日本a√在线观看| 欧美日韩va| 欧美精选视频在线观看| 一区二区三区影院| 国产不卡一区二区视频| 爱搞国产精品| 亚洲国产wwwccc36天堂| 久久久久免费看黄a片app| japanese色国产在线看视频| 午夜激情久久久| 日韩精品一区二区三区久久| 欧美成人精品三级网站| 欧美日韩www| 爽爽爽在线观看| 福利在线一区| 亚洲欧洲中文天堂| 国产日产精品一区二区三区的介绍| 国产精品久久久久久久| 欧美极品少妇全裸体| 国产精品老女人| 日韩电影在线免费| 成人在线播放av| 国产成人手机在线| 久久综合一区二区| 一本一生久久a久久精品综合蜜| 国产日产一区二区| 午夜婷婷国产麻豆精品| 无人在线观看的免费高清视频 | 欧美午夜在线一二页| 成年人网站av| 天堂日韩电影| 久久天堂av综合合色| 日韩 国产 在线| 免费在线看成人av| 国产精品日韩二区| 91精品专区| 亚洲国产aⅴ天堂久久| 九色porny91| 亚洲精品国产九九九| 亚洲欧美激情视频| 久久久久亚洲AV成人| 美女黄网久久| 99热国产免费| www免费网站在线观看| 亚洲高清不卡在线观看| 国产精品一区二区小说| 欧美调教视频| 久久精品视频导航| 麻豆成人免费视频| 国产99久久久国产精品潘金| 亚洲7777| 涩涩视频在线免费看| 欧美一区二区三区四区久久| 精品无人区无码乱码毛片国产 | 人妻少妇被粗大爽9797pw| 精品国产第一国产综合精品| 亚洲天堂男人天堂| 日本在线小视频| 国产乱人伦偷精品视频免下载| 欧美视频观看一区| 91视频欧美| 日韩亚洲欧美在线| av资源在线免费观看| 国产亚洲午夜| 国产精品国产三级欧美二区 | 国产精品久久久久久久蜜臀| 日韩免费视频播放| www国产精品| 久久影视免费观看| 亚洲午夜激情视频| 国产欧美久久久精品影院| 黄色一级片播放| 国产香蕉精品| 九九热精品在线| 日本精品中文字幕| 国产对白在线播放| 麻豆影院在线| 欧美在线不卡一区| 97人妻精品一区二区三区免| 黄色日韩在线| av色综合网| 午夜激情在线| 日韩一级黄色大片| 波多野结衣家庭教师| 看电视剧不卡顿的网站| 日韩欧美视频第二区| 成人私拍视频| 亚洲欧美日韩成人| 亚洲成人av影片| 久久青草国产手机看片福利盒子| 99视频在线免费播放| 高潮按摩久久久久久av免费| 欧美激情一区二区三区久久久 | 国产在视频一区二区三区吞精| 亚洲男人第一网站| 欧美成人一区二区三区四区| 国产午夜精品久久久久久久| 男人女人黄一级| 日本女优一区| 91青草视频久久| 成人在线免费看片| 精品久久久久99| 国产无遮挡又黄又爽又色| 99久久精品99国产精品| 成年人视频观看| 国产91精品对白在线播放| 国产精品美女久久久久av超清| av中文字幕在线| 777奇米四色成人影色区| 久久久国产成人| 99精品国产一区二区三区不卡| 欧美a在线视频| 成人激情电影在线| 91在线视频一区| rebdb初裸写真在线观看| 亚洲男人的天堂在线| 中文字幕777| 一区二区三区不卡在线观看| 欧美无人区码suv| 久久亚洲电影| 懂色av粉嫩av蜜臀av| 成人午夜大片| 国产一区二区三区四区五区入口 | 欧洲日本在线| 亚洲精品在线一区二区| 激情视频网站在线观看| 亚洲日本va在线观看| 亚洲观看黄色网| 免费欧美在线视频| 妺妺窝人体色www看人体| 亚洲黄页网站| 成人h视频在线| 新版的欧美在线视频| 色黄久久久久久| 人妻无码一区二区三区久久99 | 自拍偷拍亚洲综合| 国产高潮视频在线观看| 奇米亚洲午夜久久精品| 无码人妻精品一区二区蜜桃百度| 日韩高清电影免费| 91亚洲精品一区| 2022成人影院| 欧美日韩福利在线观看| 毛片在线免费| 精品国产自在久精品国产| 中文区中文字幕免费看| 亚洲成人av电影在线| 五月综合色婷婷| 国产亚洲福利社区一区| 亚洲欧美日韩偷拍| 国产剧情av麻豆香蕉精品| 日本成人在线免费视频| 伊人久久亚洲影院| mm131午夜| 人人狠狠综合久久亚洲婷婷 | 欧美精选视频在线观看| 国产免费高清一区| 日本精品视频| 国产精品丝袜视频| 快播电影网址老女人久久| 久久久亚洲精选| 午夜小视频在线观看| 少妇激情综合网| 精品视频二区| 精品中文字幕久久久久久| 亚洲免费不卡视频| 欧美一区二区三区免费观看视频| 中文字字幕在线观看| 欧美性xxxx极品hd满灌| 丰满少妇乱子伦精品看片| 一区二区三区高清不卡| 18岁成人毛片| 有码一区二区三区| 国产第一页浮力| 国产精品国产三级国产aⅴ原创| mm131丰满少妇人体欣赏图| 91丨九色丨蝌蚪富婆spa| 国产人妻黑人一区二区三区| 国产成人综合亚洲网站| 中文字幕在线观看视频www| 久久99久久久欧美国产| 手机版av在线| 九色porny丨国产精品| 91精品999| 国产一区在线精品| 男女视频在线观看网站| 国产在线不卡一区| 日本美女久久久| 国产精品一区二区视频| 亚洲少妇一区二区| av网站免费线看精品| 国产免费一区二区三区最新6| av一区二区三区| 精品无码人妻一区| 国产日韩欧美综合在线| 我想看黄色大片| 成人福利一区二区| 伦理中文字幕亚洲| а√资源新版在线天堂| 欧美激情国产精品| 国产高清视频色在线www| 26uuu久久噜噜噜噜| 欧美大片1688| 成人美女免费网站视频| 精品一区二区三区中文字幕| 成人欧美视频在线| 婷婷精品在线| 婷婷精品国产一区二区三区日韩| 成人在线免费观看91| 男同互操gay射视频在线看| 亚洲国产高清视频| 男人舔女人下面高潮视频| 日本欧美在线看| 亚洲国产欧美日韩在线| 成人18精品视频| av男人的天堂av| 综合分类小说区另类春色亚洲小说欧美 | 中文字幕日韩在线| 久久av一区二区| 日产精品一区二区| 欧美中文字幕在线观看视频| 亚洲综合好骚| 网站在线你懂的| 99国产精品久久久久| 无码人妻精品一区二区中文| 亚洲精品亚洲人成人网 | 欧美日韩美少妇| 亚洲成人77777| 亚洲欧洲高清在线| 永久免费网站在线| 国产激情999| 欧美视频三区| 日本不卡一区二区三区视频| 中文字幕亚洲精品乱码| 浮妇高潮喷白浆视频| 精品亚洲国产成人av制服丝袜| 人妻av一区二区| 国产精品久久久久久久裸模| 天天操天天爽天天干| 69堂国产成人免费视频| 日韩一二三四| 欧美激情精品久久久久久黑人| 欧美亚洲大片| 日韩精品一区二区视频| 中文字幕1234区| 91毛片在线观看| 欧美久久久久久久久久久久| 91国产福利在线| 日本xxxx人| 色偷偷偷综合中文字幕;dd| www视频在线观看| 91性高湖久久久久久久久_久久99| 婷婷精品在线| 日韩av新片网| 国产精品77777| 萌白酱视频在线| 在线精品视频小说1| 五月天婷婷社区| 欧美激情视频一区二区| 丁香久久综合| 日韩片电影在线免费观看| 一区二区毛片| 精品国产一区在线| 亚洲成人综合网站| 国产高清免费av| 久久精品视频播放| 亚洲精品伊人| 婷婷精品国产一区二区三区日韩| 久久精品道一区二区三区| 国产老熟女伦老熟妇露脸| 亚洲综合色婷婷| 成 人 黄 色 片 在线播放| 久热精品视频在线观看| 日本一区二区三区视频在线| 欧美中日韩一区二区三区| 99日韩精品| 国产精品300页| 欧美日韩在线一区| 日本精品专区| 4388成人网| 亚洲国产网址| 白嫩少妇丰满一区二区| 91视频在线观看免费| 成人精品免费在线观看| 亚洲国产日韩欧美在线99| 91福利在线免费| 久久99精品久久久久子伦| 亚洲影视综合| 大又大又粗又硬又爽少妇毛片| 色综合天天综合| 国产福利电影在线| 国产区亚洲区欧美区| 婷婷色综合网| 久久发布国产伦子伦精品| 亚洲综合色噜噜狠狠| 五月婷婷六月激情| 琪琪第一精品导航| 欧美精品久久久久久| 婷婷中文字幕在线观看| 亚洲综合在线第一页| 香蕉国产在线视频| 国产精品福利在线观看网址| 日韩在线高清| 在线视频一二区| 亚洲网友自拍偷拍| 色一情一乱一乱一区91av| 欧美最猛性xxxxx(亚洲精品)| 欧美精品色图| 91性高潮久久久久久久| 亚洲成a人在线观看| 国产精品影院在线| 国产综合久久久久久| 国语对白精品一区二区| 亚洲欧美色图视频| 欧美在线三级电影| 在线观看三级视频| 免费国产在线精品一区二区三区| 视频一区中文字幕国产| 69夜色精品国产69乱| 亚洲精品国产精品国产自| 欧美日韩国产网站| av一区二区三区免费观看| 91在线观看一区二区| 91尤物国产福利在线观看| 欧美激情第1页| 欧洲美女日日| 久久无码专区国产精品s| 色综合久久久久久久久| а√中文在线8| 日韩电影免费观看在| 国产精品综合在线视频| 中文字幕免费在线观看视频| 久久亚洲春色中文字幕| 欧洲精品一区| 中文字幕视频三区| 亚洲va中文字幕| 黄网站在线免费| 日本一区不卡| 岛国一区二区三区| 亚洲午夜激情视频|