Vue.jsとGoogle Books APIを使って本の検索機能を実装する
Vue.jsとGoogle Books APIを使って簡単に本の検索機能が実装できたのでメモを残しておきます。
コード内容
<form id="search-form">
<input class="form-text" type="text" id="isbn" placeholder="ISBNコードを入力" v-model="isbn">
<button type="button" v-on:click="search()">検索</button>
</form>
<div id="result"></div>
<form id="search-form">
<input class="form-text" type="text" id="isbn" placeholder="ISBNコードを入力" v-model="isbn">
<button type="button" v-on:click="search()">検索</button>
</form>
<div id="result"></div>
に対して、
new Vue({
el:'#search-form',
data: {
isbn: '',
},
methods: {
search() {
const code = document.getElementById('isbn').value;
fetch(`https://www.googleapis.com/books/v1/volumes?q=isbn:${code}`)
.then(response => {
return response.json();
}).then(data => {
const bookTitle = data.items[0].volumeInfo.title;
$('#result').append(bookTitle);
}).catch(function(error) {
$('#result').append(error);
});
}
}
});
検索機能が実装されました。
何が起きているのか
まず
const code = document.getElementById('isbn').value;
の部分で、検索フォームに入力されたISBNコードを取得しています。
fetch(`https://www.googleapis.com/books/v1/volumes?q=isbn:${code}`)
.then(response => {
return response.json();
}).then(data => {
const bookTitle = data.items[0].volumeInfo.title;
$('#result').append(bookTitle);
}).catch(function(error) {
$('#result').append(error);
});
上記の部分でやっていることは,
①Fetch APIでPromiseを受け取る
②Promiseが成功すればresolveを失敗すればrejectを呼び出します。(詳しくはわかっておらずすみません、、、)
③resolveならthen,rejectならcatchの処理が行われる
④(resolveだった場合の処理)ここで受け取ったレスポンスの中からJSONを抽出
⑤JSONをdataと定義し、JSONを辿っていきtitleを取得!
といった流れになっています。
終わりに
自分で書いていて理解が足りていない部分が、よくわかりました(特にPromise)
間違っている点などあれば、ご指摘いただけると幸いです。
Author And Source
この問題について(Vue.jsとGoogle Books APIを使って本の検索機能を実装する), 我々は、より多くの情報をここで見つけました https://qiita.com/kensuke_kumaki/items/d40386c857114455171e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .