[Vue] 6. Mock(偽)サーバ-2)APIを使用したサーバデータの登録とバインド
APIの登録とサーバデータのバインド
Mockサーバに登録されているAPIを使用
Mockサーバに登録されたAPIデータを呼び出してリストをレンダリングするプログラムを実装する.
axiosモジュールのインストール
サーバデータを呼び出すときにaxiosオープンソースを使用することが多い.
https://github.com/axios/axios
$ npm install axios
<script>
importはタグ内でaxiosを使用できます.<script>
import axios from "axios";
</script>
axiosによるサーバデータ通信
完全なコード
ServerData.vue
ファイルを作成し、リンクを接続します.// index.js
const routes = [
..., // serverdata 추가
{
path: "/serverdata",
name: "ServerData",
component: () =>
import(/* webpackChunkName: "about" */ "../views/ServerData.vue"),
},
]
まず、Server Dataです.vueの完全なコードを見てください.// ServerData.vue
<template>
<div>
<button type="button" @click="getProductList">조회</button>
<table>
<thead>
<tr>
<th>제품명</th>
<th>가격</th>
<th>카테고리</th>
<th>배송료</th>
</tr>
</thead>
<tbody>
<tr :key="i" v-for="(product, i) in productList">
<td>{{ product.product_name }}</td>
<td>{{ product.price }}</td>
<td>{{ product.category }}</td>
<td>{{ product.delivery_price }}</td>
</tr>
</tbody>
</table>
</div>
</template>
<script>
import axios from "axios";
export default {
components: {},
data() {
return {
productList: [],
};
},
setup() {},
created() {},
mounted() {},
unmounted() {},
methods: {
async getProductList() {
this.productList = await this.api(
"https://a1e284c5-db6b-4726-a0be-a72a59f81862.mock.pstmn.io/productList",
"get",
{}
);
console.log(this.productList);
},
async api(url, method, data) {
return (
await axios({
method: method,
url: url,
data: data,
}).catch((e) => {
console.log(e);
})
).data;
},
},
};
</script>
<style scoped></style>
api関数
非同期関数を作成し、データをサーバに捨て、サーバと通信した後に応答を受信します.パラメータは、Postmanが作成したサーバurl、呼び出し方を表すメソッド(get、put、deleteなど)、サーバにデータを投げ出す必要がある場合に投げ出すデータの3つの部分から構成されます.
サーバ応答のデータは、
api
によって受信され得る.JavaScriptからサーバに特定のリクエストを送信する場合、結果を待つことなく、次のコードを直接実行します.ただし、以下のコードを実行するには、結果を得る必要がある場合があります.その時は
.data
async
を使いました.結果が出るまで待つということです.await
は、私たちが導入したaxios
機能です.axios
、method
、url
の情報を提供すると、data
によってサーバから処理され、結果に応答できます.async api(url, method, data) {
return (
await axios({
method: method,
url: url,
data: data,
}).catch((e) => {
console.log(e);
})
).data;
},
},
getProductList関数
我々が定義したapi関数を呼び出し、インポートしたデータを
.data
productList
getProductList
|に格納する非同期関数を定義します.url
は、postman
で作成したmockサーバURLを使用してください.get
です.しかもデータは捨てられないので、先に空けておきます.コンソールウィンドウに出力して、受信したかどうかを確認します.async getProductList() {
this.productList = await this.api(
"https://a1e284c5-db6b-4726-a0be-a72a59f81862.mock.pstmn.io/productList",
"get",
{}
);
console.log(this.productList);
}
残りのセクションでは、リストをレンダリングするために、以前から使用していたv-for
を使用するため、説明を省略します.[クエリー](Query)ボタンをクリックして、レンダリングがサーバからインポートされたリストを確認します.

なぜMock Serverを使うのですか?
現在はMockサーバを使用していますが、実際にサーバを使用する場合もこの方法でサーバにアクセスします.urlは実際のサーバになるだけです.したがって,実際のフロントエンド開発を行う場合,通常はMockサーバで開発してから実際のサーバに接続する.
次のレッスン..。
サーバと通信する必要があるすべての画面には
api
関数が必要です.そうすると、必要な場所で関数をコピーして貼り付ける必要があります.したがって、すべてのコンポーネントに登録して使用することを学習します.Reference
この問題について([Vue] 6. Mock(偽)サーバ-2)APIを使用したサーバデータの登録とバインド), 我々は、より多くの情報をここで見つけました https://velog.io/@manyyeon/Vue.js-6.-Mock가짜-서버-이용하기-2-API-등록-및-서버-데이터-바인딩テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol