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の場合は、レスポンスデータのみが直接取得されます。
ステータスコードやステータステキストを使ってエラー時の分岐をしたりする場合は取得されないので、書き方によって違いがあると注意しておく必要があります。


gulpfile.jsにAutoprefixerのブラウザオプションを書くとエラーがでる場合の修正方法
WordPress5.5のサイトマップ機能を無効にする
Google Maps APIでピンの見た目をカスタマイズする方法
Font Awesome 5の基本的な使い方と、Font Awesome 4との違い
ウェブサイトをダークモードに対応するときに気をつけること
WordPressって何なの?これからWordPressを勉強したい人がとりあえず知っておきたい事
「とりあえず無料版!」ではなく、機能を知った上で判断したいMAMPとMAMP PROの比較
iTerm2を使いこなすために覚えておきたいショートカット集
iOS Safariで指定したフォントサイズにならない場合の対処法
Visual Studio Codeで開始タグを修正すると自動で閉じタグも修正してくれる拡張機能「Auto Rename Tag」
AirPodsで片耳を外しても再生が止まらないようにする方法
MacのKeynoteにハイライトされた状態でコードを貼り付ける方法
iTerm2でマウスやトラックパッドの操作を設定できる環境設定の「Pointer」タブ
DeepLで「インターネット接続に問題があります」と表示されて翻訳できないときに確認すること
Ulyssesの「第2のエディタ」表示を使って2つのシートを横並びに表示する
Visual Studio CodeからFTPソフトのTransmitを使用する拡張機能「Transmit」
MacのSIPのオン・オフを切り替える方法
効率的にHTMLを生成できるPugの特徴や記述方法
SteerMouseの「自動移動」機能で保存ダイアログが表示されたら自動でデフォルトボタンへカーソルを移動させる
Path Finder 8から大幅に強化されたモジュール機能の設定方法
Gmailの未読メールのみを表示させる2つの方法
「DevTools z-index」でz-indexがかかっている要素をChrome開発者ツールに一覧表示させる
メールとチャットを一元管理してワークスペースを整理する「Rambox」
iPhoneやiPadのSafariに機能拡張をインストールして、さらに快適なブラウジングを行う