Axios 要素を使用してグローバル リクエスト ロード メソッドを実装する
この記事では主にAxios Elementを使用してグローバルリクエストロードを実装する方法を紹介しますので、参考にしてください。
バックグラウンド
ビジネス要件は次のようになります。リクエストがバックエンドに送信されるたびに、全画面読み込みがトリガーされ、複数のリクエストが 1 つの読み込みにマージされます。
現在プロジェクトではVue、axios、element等を使用しているため、この記事では主にaxiosとelementを使ってこの機能を実装する方法について説明します。
効果は次のとおりです:
分析
まず、リクエストの開始時にロードが開始され、リクエストが返された後にロードが終了します。ポイントは、リクエストとレスポンスをインターセプトすることです。
その後、複数のリクエストを 1 つの読み込みにマージする必要があります。
最後に、要素の読み込みコンポーネントを呼び出します。
リクエストとレスポンスのインターセプト
axios の基本的な使い方については詳しく説明しません。著者はインスタンスを作成してプロジェクト内で axios を使用します。
// 创建axios实例 const $ = axios.create({ baseURL: `${URL_PREFIX}`, timeout: 15000 })
次に、postリクエストをカプセル化します(例としてpostを取り上げます)
export default { post: (url, data, config = { showLoading: true }) => $.post(url, data, config) }
axiosは、リクエストごとにshowFullScreenLoadingメソッドが呼び出され、tryHideFullScreenLoadingが呼び出されます。 () メソッド
// 请求拦截器 $.interceptors.request.use((config) => { showFullScreenLoading() return config }, (error) => { return Promise.reject(error) }) // 响应拦截器 $.interceptors.response.use((response) => { tryHideFullScreenLoading() return response }, (error) => { return Promise.reject(error) })
次に、showFullScreenLoading tryHideFullScreenLoading() が行うことは、リクエストを同時にマージすることです。変数 needLoadingRequestCount を宣言し、毎回 showFullScreenLoading メソッド needLoadingRequestCount + 1 を呼び出します。 tryHideFullScreenLoading() メソッドを呼び出します (needLoadingRequestCount - 1)。 needLoadingRequestCountが0になるとロードが終了します。
let needLoadingRequestCount = 0 export function showFullScreenLoading() { if (needLoadingRequestCount === 0) { startLoading() } needLoadingRequestCount++ } export function tryHideFullScreenLoading() { if (needLoadingRequestCount <= 0) return needLoadingRequestCount-- if (needLoadingRequestCount === 0) { endLoading() } }
startLoading()とendLoading()は要素のloadingメソッドを呼び出します。
import { Loading } from 'element-ui' let loading function startLoading() { loading = Loading.service({ lock: true, text: '加载中……', background: 'rgba(0, 0, 0, 0.7)' }) } function endLoading() { loading.close() }
この時点で、基本的な機能は実装されました。投稿リクエストが送信されるたびに、全画面ロードが表示されます。同時に複数のリクエストが 1 つのロードに結合され、すべての応答が返された後にロードが終了します。
機能強化
実は、現在の機能ではまだ少し物足りません。特定のリクエストにロードが必要ない場合は、リクエストの送信時に showLoading: false パラメータを追加するだけです。リクエストのインターセプトおよびレスポンスのインターセプト中に、リクエストにロードが必要かどうかを判断します。ロードが必要な場合は、showFullScreenLoading() メソッドを呼び出します。
POST リクエストをカプセル化するときに、config オブジェクトが 3 番目のパラメーターに追加されました。 config には showloading が含まれています。次に、インターセプターでそれらを個別に処理します。
// 请求拦截器 $.interceptors.request.use((config) => { if (config.showLoading) { showFullScreenLoading() } return config }) // 响应拦截器 $.interceptors.response.use((response) => { if (response.config.showLoading) { tryHideFullScreenLoading() } return response })
axios を呼び出すとき、3 番目のパラメーターに config を指定すると、Axios はリクエスト インターセプターのコールバック パラメーターに showloading を直接入れます。これは直接使用できます。応答インターセプターのコールバック パラメーター応答には設定キーがあります。この設定はリクエスト インターセプタのコールバック パラメータ設定と同じです。
上記をあなたのためにまとめました。将来お役に立てば幸いです。
関連記事:
Vueによるbass.scss処理ソリューションのグローバル導入の詳細説明
jsによる重複排除と数値配列の最適化のためのバイナリツリー構築
赤黒ツリー挿入の詳細説明と Javascript 実装メソッドの例
以上がAxios 要素を使用してグローバル リクエスト ロード メソッドを実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Vue アプリケーションで axios を使用するのは非常に一般的です。axios は、ブラウザーと Node.js で使用できる Promise ベースの HTTP クライアントです。開発プロセス中に、「Uncaught(inpromise)Error: Requestfailedwithstatuscode500」というエラー メッセージが表示されることがありますが、開発者にとって、このエラー メッセージは理解および解決が難しい場合があります。この記事ではこれについて説明します

Vue でのデータ リクエストの選択: AxiosorFetch? Vue 開発では、データ リクエストの処理は非常に一般的なタスクです。データリクエストにどのツールを使用するかを選択することは、考慮する必要がある問題です。 Vue で最も一般的なツールは、Axios と Fetch の 2 つです。この記事では、両方のツールの長所と短所を比較し、選択に役立つサンプル コードをいくつか示します。 Axios は、ブラウザおよび Node.js で動作する Promise ベースの HTTP クライアントです。

element.style で要素を変更するメソッド: 1. 要素の背景色を変更する; 2. 要素のフォント サイズを変更する; 3. 要素の境界線のスタイルを変更する; 4. 要素のフォント スタイルを変更する; 5要素の水平方向の配置を変更します。詳細な紹介: 1. 要素の背景色を変更します。構文は "document.getElementById("myElement").style.backgroundColor = "red";"; 2. 要素のフォント サイズなどを変更します。

最近、Vue アプリケーションの開発中に、「TypeError: Failedtofetch」エラー メッセージという一般的な問題に遭遇しました。この問題は、axios を使用して HTTP リクエストを作成し、バックエンド サーバーがリクエストに正しく応答しない場合に発生します。このエラー メッセージは通常、ネットワーク上の理由またはサーバーが応答していないことが原因で、リクエストがサーバーに到達できないことを示します。このエラーメッセージが表示された後はどうすればよいでしょうか?以下にいくつかの回避策を示します。

Vue アプリケーションで axios を使用するときに発生する「エラー: NetworkError」の問題を解決するにはどうすればよいですか? Vue アプリケーションの開発では axios を使って API リクエストをしたり、データを取得したりすることが多いのですが、axios リクエストで「Error: NetworkError」が発生することがあります。まず、「Error:NetworkError」の意味を理解する必要があります。これは通常、ネットワーク接続が切断されていることを意味します。

Vue と Axios を効率的に活用して、フロントエンド データのバッチ処理を実装します。フロントエンド開発ではデータ処理が一般的なタスクです。大量のデータを処理する必要がある場合、効果的な方法がなければ、データの処理は非常に煩雑で非効率的になってしまいます。 Vue は優れたフロントエンド フレームワークであり、Axios は人気のあるネットワーク リクエスト ライブラリであり、連携してフロントエンド データのバッチ処理を実装できます。この記事では、Vue と Axios を効率的に使用してデータのバッチ処理を行う方法を詳しく紹介し、関連するコード例を示します。

vue3+ts+axios+pinia で無意味なリフレッシュを実現 1. まず、プロジェクト内の aiXos と pinianpmipinia をダウンロードします--savenpminstallaxios--save2. axios リクエストをカプセル化-----ダウンロード js-cookienpmiJS-cookie-s// aixosimporttype{AxiosRequestConfig , AxiosResponse}from"axios";importaxiosfrom'axios';import{ElMess

Vue アプリケーションで axios を使用するときに「エラー: timeoutofxxxmsexceeded」が発生した場合はどうすればよいですか?インターネットの急速な発展に伴い、フロントエンド技術は常に更新され、改良が重ねられており、Vue は優れたフロントエンド フレームワークとして近年皆様に歓迎されています。 Vue アプリケーションでは、ネットワーク リクエストを行うために axios を使用する必要があることがよくありますが、「エラー: timeoutofxxxmsexceeded」というエラーが発生することがあります。
