vue-resourceブロッキングの使用
1207 ワード
vueプロジェクトでvue-resourceを使用してインタフェースを呼び出す過程で、任意のページでhttpリクエストを呼び出す必要があると仮定すると、インタフェースリクエストが成功する前にloadingが現れ、インタフェースが応答してresponseに戻ったときにloadingが非表示になります.ページごとにhttpリクエストが追加されると、コードの冗長性と重複ワークロードになります.インタフェースをリクエストするたびに、統一的に処理して、各インタフェースに戻る方法はありませんか.vue-resourcedのinterceptorsは、httpリクエストの応答のたびに生まれます.ブロッキングが設定されている場合、ブロッキング関数が優先的に実行され、応答体が取得され、responseがthenに返されて受信されるかどうかが決定されます.このブロッキングに応答ステータスコードの判断を追加して、ログインページにジャンプするか、現在のページに残ってデータを取得し続けるかを決定することができます.この関数は、appなどのルートコンポーネントに登録するのが一般的である.vue
一般的な書き方は以下の通りです.
一般的な書き方は以下の通りです.
Vue.http.interceptors.push((request, next) => {
// modify request
request.method = 'POST';//
// continue to next interceptor
// then response 。 session , , http
next((response) => {
loading = false// loading , vuex
if(response.status === 200) {
... //
return response // , then, response
} else {
if (response.status >= 500) {
//
} else if (response.status === 404) {
...
}
return reponse //
}
});
});