透過 100 多個技巧學習 Nuxt!

jsonapi
nuxt-jsonapi

為 Nuxt 提供簡單的 JSON:API 客戶端整合

Nuxt JSON:API logo

nuxt-jsonapi

npm version npm downloads Github Actions CI Codecov License

為 Nuxt.js 提供簡單的 JSON:API 客戶端整合

📖   發行說明

版本 2.x 支援 Nuxt 3.x

版本 1.x 支援 Nuxt 2.x

簡介

nuxt-jsonapiNuxt 添加了簡單的 JSON:API 客戶端整合。它是對優秀的 Kitsu JSON:API 客戶端的一個鬆散封裝。

這個模組會全域注入一個 $jsonApi 實例,您可以使用 this.$jsonApi (選項 API) 或 const { $jsonApi } = useNuxtApp() (組合 API) 在任何地方存取該客戶端。

設定

  1. nuxt-jsonapi 依賴項添加到您的專案
yarn add nuxt-jsonapi # or npm install nuxt-jsonapi
  1. nuxt-jsonapi 添加到 nuxt.config.jsmodules 區段
{
  modules: [
    // Simple usage
    'nuxt-jsonapi',

    // With options
    [
      'nuxt-jsonapi',
      {
        baseURL: 'http://www.example.com/api',
        /* other module options */
      },
    ],
  ]
}
  1. 如果您在步驟 #2 沒有傳遞選項,請在您的 nuxt.config.js 中新增一個 jsonApi 物件來設定模組選項
export default {
  modules: ['nuxt-jsonapi'],

  jsonApi: {
    baseURL: 'http://www.example.com/api',
    /* other module options */
  },
}

❗ 重要

如果您沒有指定 baseURL 選項,將會使用預設的 /jsonapi URL。這幾乎肯定不是您想要的,請務必正確設定。


使用方式

請參閱 Kitsu 的優秀文件,以了解客戶端提供的所有功能。

您可以使用以下方式存取客戶端

選項 API

this.$jsonApi

範例

export default defineNuxtComponent({
  async asyncData({ $jsonApi }) {
    const { data } = await $jsonApi.get('/article')

    return {
      articles: data,
    }
  },
})

組合 API

const { $jsonApi } = useNuxtApp()

範例

<script setup>
import { useNuxtApp, useAsyncData } from '#app'

const { $jsonApi } = useNuxtApp()

const { data: articles } = await useAsyncData(() => $jsonApi.get('/article'), {
  transform: ({ data }) => data,
})
</script>

開發

  1. 複製此儲存庫
  2. 使用 yarn installnpm install 安裝依賴項
  3. 使用 yarn devnpm run dev 啟動開發伺服器
  4. 使用 yarn testnpm run test 執行自動化測試
  • 執行 npm run dev:prepare 以產生類型存根。
  • 使用 npm run dev 以開發模式啟動 playground

授權條款

MIT 授權條款

版權所有 (c) Patrick Cate