こんにちわ、ゆきねこです。
社内でもっとモダンな開発スタイルを取り入れようぜってことで、JavaScriptを書く際はES6に合わせる方向性になりました。
ただ、vue.jsの本ではES6対応してなかったので、対応の仕方を書いておきます。
コードはこんな感じです。
var app = new Vue({
el:'#app',
data:{
keyword:'',
errorMsg:'',
items:[],
},
methods:{
searchItem(keyword){
searchUrl = "https://test.co.jp/";
sendData = {"keyword":keyword};
this.errorMsg = '';
this.items = [];
axios({
method:"get",
url:searchUrl,
params:sendData
})
.then(data => {
if (data.items.length) {
this.items = data.items;
}else{
this.errorMsg = "検索結果は0件です。";
}
}).catch(error => {
console.log(error)
this.errorMsg = "通信エラー";
})
}
}
})
本とかですと、以下のようになっていることが多いかと思います。
methods:{
searchItem:function (keyword){
}
}
ES6ではfunctionが非推奨なのでここから:とfunctionを消して記述すると以下のようになります。
methods:{
searchItem(keyword){
}
}
あとはAPIと通信する時にaxiosを使いますが、だいたい以下のようなコードになるかと思います。
axios({
method:"get",
url:searchUrl,
params:sendData
}).then(function(data) {
if (data.items.length) {
this.items = data.items;
}else{
this.errorMsg = "検索結果は0件です。";
}
}).catch(function(error) {
this.errorMsg = "通信エラー";
})
これもアロー関数に変更すると以下のようになります。
axios({
method:"get",
url:searchUrl,
params:sendData
}).then(data => {
if (data.items.length) {
this.items = data.items;
}else{
this.errorMsg = "検索結果は0件です。";
}
}).catch(error => {
this.errorMsg = "通信エラー";
})
0件のコメント