Nuxt.jsでaxios-moduleを使ってAPIからデータを取得・表示する|Nuxt.jsの基本

Nuxt.jsでAPIと連携してデータを取得する方法はいくつかありますが、今回は「axios-module」というモジュールを使用します。
axios-module
axios-moduleは、HTTPリクエストを簡単にするための「axios」をさらに便利に扱うためのモジュールです。
axios自体は過去に記事にしたことがあるので、そちらもご覧ください(Nuxt.jsに限らず、純粋なJavaScriptの使用例になります)。
Nuxt.jsへの導入方法
Nuxt.jsでaxiosを使用する場合は「nuxt-community」から公開されているNuxt.js用のパッケージがあるので、こちらをインストールします。
$npm install -D @nuxtjs/axios$yarn add @nuxtjs/axiosインストールができたら、nuxt.config.jsを開きます。
このファイルがNuxt.jsの設定ファイルで、インストールしたモジュールを読み込むように設定します。
modulesという項目があるので、その配列内に'@nuxtjs/axios'を追加します。
module.exports = {
// 省略 //
modules: [
'@nuxtjs/axios'
],
// 省略 //
}これでNuxt.js内でaxiosが使えるようになりました。
axios-moduleの使用
asyncDataで読み込み
Nuxt.jsの独自メソッドに「asyncData」があります。
これはページコンポーネントがロードされる前に実行されるメソッドで、SSR(サーバーサイドレンダリング)するためのものです。
createdやmountedだと、ページコンポーネントがロードされた後に実行されてしまうので、基本はasyncData内でaxiosを使ってAPIのロードを行います。
下記はJSONPlaceholderというAPIを実際に取得するときのサンプルコードです。
<script>
export default {
async asyncData({ $axios }) {
const response = await $axios.get("https://jsonplaceholder.typicode.com/todos",{
params: {
userId: '1'
}
})
return {
data: response.data
}
}
}
</script>axiosの詳細な使い方
axios.get()で第一引数にAPIのエンドポイントを指定し、第二引数に渡すパラメータなどを指定します。
そして取得したデータはasyncData内でreturn{}で返して使用します。
$axios.getと$axios.$getの違い
$axios.getで取得する場合は、レスポンスが下記のようになります。
{
"data": [], // レスポンスデータ
"status": 200, // ステータスコード
"statusText": "", // ステータステキスト
"headers": {},
"config": {},
"request": {}
}実際に取得したいデータは「data」内に入っています。
$axios.$getの場合は、レスポンスデータのみが直接取得されます。
ステータスコードやステータステキストを使ってエラー時の分岐をしたりする場合は取得されないので、書き方によって違いがあると注意しておく必要があります。


.htaccessを使って、httpからhttpsへリダイレクトする設定方法
Vue Routerでページ遷移後にトーストを表示させる方法
Post Snippetsを使ってWordPressでショートコードをの登録と管理をもっと楽に!!
Visual Studio Codeで「.html」拡張子以外のファイルでもEmmetを使えるようにする
Safari 12.1から外観モード(ライト/ダーク)の判定をCSSで行えるように!
JavaScriptのtest関数と正規表現でバリデーションチェックを行う
npm install時に「cb() never called!」とエラーが表示されたときの解決法
Vue.jsでtemplateタグ内にscriptやstyleタグを生成する方法|Tags with side effect are ignored
Local by Flywheelのページ遷移を軽くする設定
効率的にHTMLを生成できるPugの特徴や記述方法
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
BetterTouchToolを使って、ショートカットキーでAirPods ProをMacBook Proに接続する方法
Karabiner-Elementsを使って、Finder上でReturnを押すとファイルを開くようにする
Homebrew Caskを使うとき、「brew cask search」は効かないので「brew search」を使うようにする
ターミナルの$記号前の表示を自由にカスタマイズする
Googleアナリティクスのイベントトラッキングの設定方法
高速なzshのプラグインマネージャー「Zplugin」の導入方法
macOSのシステム環境設定「インターネットアカウント」の設定見直し
記事用のスクリーンショットを撮るときに気をつけていること
macOSのシステム環境設定「アクセシビリティ」内にあるVoiceOverの設定見直し