ホーム > Vue > Nuxt3の'<script setup>'useFetchを使ってAPIからデータを取得する方法
Vue

Nuxt3の'<script setup>'useFetchを使ってAPIからデータを取得する方法

いつもご利用ありがとうございます。
この記事には広告が掲載されており、その広告費によって運営しています。

Nuxt3 の<script setup>useFetch を使って API からデータを取得する方法の基本形について調べたので、まとめてみました。

結論

<template>
  <div>
    <button @click="test">{{ data.weapons }}</button>
  </div>
</template>

<script setup>
  const config = useRuntimeConfig();
  //config.baseUrl = http://127.0.0.1:8000
  const { data } = await useFetch(`${config.baseUrl}/api/posts`);
  const test = () => {
    console.log(data.value.posts);
  };
</script>

このように書くのが基本形みたいです。

const { data } = await useFetch(`${config.baseUrl}/api/posts`)

data の参照に value が必要だった

<script setup></script>

の中で fetch した data の中を参照しようとするときは、

data.value が必要でした。

<script setup>
  const config = useRuntimeConfig();
  //config.baseUrl = http://127.0.0.1:8000
  const { data } = await useFetch(`${config.baseUrl}/api/posts`);
  const test = () => {
    console.log(data.value.posts);
  };
</script>

useFetch か useAsyncData か?

基本的に useFetch でこと足りるだろうというのが、いろんな記事を読んでみた感想です。

なので、この記事では useFetch でやっていますし、基本形はこれでいいと思っていますが、よく分かっていないので、他の方の記事を参照してみてください。

Nuxt3 で個人的に useFetch より useAsyncData を推したい理由

個人的には axios が慣れていて、axios を入れて使っても良いんじゃないかと思っています。

特にバックエンドに Laravel Sanctum を使うような場合、クッキー認証の設定が楽なので axios を使いたくなります。

まとめ

以上 Nuxt3 でデータを取得する基本形について書いてみました。

誰かの参考になれば幸いでございます。

フィードバックのお願い
この記事のフィードバックがありましたらYoutubeの適当な動画にコメントしていただいたり、お問い合わせからご連絡ください。