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

Layers

Nuxt 提供了一個強大的系統,讓您可以擴展預設檔案、設定以及更多。

Layers 和擴展支援是 Nuxt 的核心功能之一。您可以擴展預設的 Nuxt 應用程式,以重複使用元件、工具程式和設定。Layers 結構幾乎與標準 Nuxt 應用程式完全相同,這使得它們易於編寫和維護。

使用案例

  • 使用 nuxt.configapp.config 在專案之間共享可重複使用的設定預設
  • 使用 components/ 目錄建立元件庫
  • 使用 composables/utils/ 目錄建立工具程式和組合式函式庫
  • 建立 Nuxt 模組預設
  • 在專案之間共享標準設定
  • 建立 Nuxt 主題
  • 透過實作模組化架構並在大型專案中支援領域驅動設計 (DDD) 模式,來增強程式碼組織。

用法

預設情況下,專案中位於 ~~/layers 目錄中的任何 layers 都會自動註冊為專案中的 layers。

Layer 自動註冊功能在 Nuxt v3.12.0 中引入。

此外,將會自動為每個 layer 的 srcDir 建立具名的 layer 別名。例如,您將能夠透過 #layers/test 存取 ~~/layers/test layer。

具名的 layer 別名在 Nuxt v3.16.0 中引入。

此外,您可以透過將 extends 屬性新增至您的 nuxt.config 檔案,從 layer 擴展。

nuxt.config.ts
export default defineNuxtConfig({
  extends: [
    '../base',                     // Extend from a local layer
    '@my-themes/awesome',          // Extend from an installed npm package
    'github:my-themes/awesome#v1', // Extend from a git repository
  ]
})

如果您從私有 GitHub 儲存庫擴展,您也可以傳遞身份驗證令牌

nuxt.config.ts
export default defineNuxtConfig({
  extends: [
    // per layer configuration
    ['github:my-themes/private-awesome', { auth: process.env.GITHUB_TOKEN }]
  ]
})
您可以透過在 layer 來源旁邊的選項中指定 layer 別名來覆寫它。
nuxt.config.ts
export default defineNuxtConfig({
  extends: [
    [
      'github:my-themes/awesome',
      { 
        meta: {
          name: 'my-awesome-theme',
        },
      },
    ],
  ]
})

Nuxt 使用 unjs/c12unjs/giget 來擴展遠端 layers。查看文件以獲取更多資訊和所有可用的選項。

Layer Author Guide 中閱讀更多關於 layers 的資訊。
觀看 Learn Vue 關於 Nuxt Layers 的影片。
觀看 Alexander Lichter 關於 Nuxt Layers 的影片。

範例

Content Wind 主題

一個輕量級的 Nuxt 主題,用於構建 Markdown 驅動的網站。由 Nuxt Content、TailwindCSS 和 Iconify 提供支持。