透過 100 多個技巧的集合學習 Nuxt!

Vue.js 開發

Nuxt 使用 Vue.js 並添加元件自動匯入、基於檔案的路由和組合式函式等功能,以便更友善地使用 SSR。

Nuxt 整合了 Vue 3,這是 Vue 的新主要版本,為 Nuxt 使用者啟用新的模式。

雖然使用 Nuxt 不需要深入了解 Vue,但我們建議您閱讀文件並瀏覽 vuejs.org 上的一些範例。

Nuxt 一直以來都使用 Vue 作為前端框架。

我們選擇在 Vue 的基礎上建構 Nuxt 的原因如下

  • Vue 的響應式模型,其中資料的變更會自動觸發介面的變更。
  • 基於元件的樣板,同時保持 HTML 作為 Web 的通用語言,可啟用直觀的模式,以保持介面的一致性,同時又具有強大的功能。
  • 從小型專案到大型 Web 應用程式,Vue 都能保持良好的規模效能,以確保您的應用程式持續為使用者提供價值。

Vue with Nuxt

單檔案元件

Vue 的單檔案元件(SFC 或 *.vue 檔案)封裝了 Vue 元件的標記 (<template>)、邏輯 (<script>) 和樣式 (<style>)。Nuxt 為 SFC 提供零配置體驗,並具有 熱模組替換,可提供流暢的開發人員體驗。

自動匯入

在 Nuxt 專案的 components/ 目錄中建立的每個 Vue 元件都將在您的專案中可用,而無需匯入它。如果元件在任何地方都未使用,您的生產程式碼將不會包含它。

請在 文件 > 指南 > 概念 > 自動匯入 中閱讀更多資訊。

Vue Router

大多數應用程式都需要多個頁面以及在它們之間導航的方式。這稱為「路由」。Nuxt 使用 pages/ 目錄和命名慣例,以使用官方的 Vue Router 函式庫直接建立對應至您的檔案的路由。

請在 文件 > 入門 > 路由 中閱讀更多資訊。
請在 文件 > 範例 > 功能 > 自動匯入 中閱讀和編輯即時範例。

與 Nuxt 2 / Vue 2 的差異

Nuxt 3+ 基於 Vue 3。新的主要 Vue 版本引入了 Nuxt 所利用的一些變更

  • 更佳的效能
  • 組合式 API
  • TypeScript 支援

更快的渲染

Vue 虛擬 DOM (VDOM) 已從頭開始重新編寫,並允許更好的渲染效能。此外,當使用編譯後的單檔案元件時,Vue 編譯器可以在建置時透過分離靜態和動態標記來進一步最佳化它們。

這會導致更快的首次渲染(元件建立)和更新,並減少記憶體使用量。在 Nuxt 3 中,它還可啟用更快的伺服器端渲染。

更小的套件

在 Vue 3 和 Nuxt 3 中,重點放在減少套件大小。在版本 3 中,Vue 的大多數功能,包括樣板指示詞和內建元件,都是可樹狀搖晃的。如果未使用它們,您的生產套件將不會包含它們。

這樣,最小的 Vue 3 應用程式可以縮減為 12 kb gzip。

組合式 API

在 Vue 2 中,為元件提供資料和邏輯的唯一方法是透過 Options API,它允許您使用預先定義的屬性(如 datamethods)將資料和方法傳回至樣板

<script>
export default {
  data() {
    return {
      count: 0
    }
  },
  methods: {
    increment(){
      this.count++
    }
  }
}
</script>

Vue 3 中引入的 組合式 API 並非 Options API 的替代品,但它可在整個應用程式中實現更好的邏輯重複使用,並且是透過在複雜元件中關聯來對程式碼進行分組的更自然的方式。

<script> 定義中的 setup 關鍵字搭配使用,以下是使用組合式 API 和 Nuxt 3 自動匯入的響應式 API 重新編寫的上述元件

components/Counter.vue
<script setup lang="ts">
const 
count
=
ref
(0)
const
increment
= () =>
count
.
value
++
</script>

Nuxt 的目標是圍繞組合式 API 提供絕佳的開發人員體驗。

TypeScript 支援

Vue 3 和 Nuxt 3+ 都是以 TypeScript 撰寫的。完全型別化的程式碼庫可防止錯誤並記錄 API 用法。這並不表示您必須以 TypeScript 撰寫您的應用程式才能使用它。使用 Nuxt 3 時,您可以透過將檔案從 .js 重新命名為 .ts,或在元件中新增 <script setup lang="ts"> 來選擇加入。

閱讀關於 Nuxt 中 TypeScript 的詳細資訊