http通信で、ブラウザとWebサーバーとの間で通信を行うためのパッケージであるaxiosをnuxt.js環境に導入します。
npm install axios
JSON Placeholderなどの外部サービスからテスト用にリクエストを送れるJSONデータを用意します。
<template>
<div>{{users}}</div>
</template>
<script>
const axios = require("axios");
let url = "https://jsonplaceholder.typicode.com/user";
export default {
asyncData({ params }) {
return axios.get(url).then((res => {
return { users: res.data };
});
}
};
</script>
axiosを使用できるようにscript内で定義。url変数にurlを代入します。
asyncDataメソッドで非同期処理を行います。axios.getでurlにAPIからのデータ取得をリクエストしています。
レスポンスを受け取り、thenメソッドを使用。resに受け取ったデータが入っているので、returnでresのdataを返します。
受け取ったデータは配列構造になっています。
要素を一つ取り出す場合はDOM要素内で
{{users[0].id}},{{users[0].name}}
上記のようにカンマ区切りで1つの配列の中の属性を取り出していきます。
複数のデータを取り出す場合は、v-forで回しましょう。これで複数データをいっきに表示することができます。
<ul>
<li v-for="user in users" :key="user.id">{{user.id}},{{user.name}}</li>
</ul>