序文現在、プロジェクトでは、Axios ライブラリが HTTP インターフェース リクエストによく使用されています。これは、ブラウザと node.js で実行できる promise ベースの http ライブラリです。さらに、リクエストとレスポンスのインターセプト、JSON データの変換、XSRF に対するクライアント側の防御などの優れた機能も備えています。 実際にさまざまなプロジェクトで使用する場合、記述方法がわかりにくく、一貫性がないことが考えられます。 Axios は、コードを簡素化し、後からの更新やメンテナンスを容易にして、可能な限り汎用化するために、一般化された方法でカプセル化されています。 方法は次のとおりです1. Vueにaxiosをインストールする npm インストール axios -S またはnpm i axios -S 2. main.jsでグローバルインポートする 'axios' から axios をインポートします Vue.prototype.$axios = axios //Vueのプロトタイプにaxiosをバインドする 3. ルートディレクトリのvue.config.jsでクロスドメインを設定する モジュール.エクスポート = { パブリックパス: './', //クロスドメインリクエストを構成する devServer: { open: true, //ブラウザを自動的に開くかどうか https: false, //httpsを有効にするかどうか hotOnly: 偽、 proxy: { // クロスドメインを構成する '/api': { target: 'http://********', //リクエストインターフェースドメイン名 ws: true, 安全: 偽、 changOrigin: true, // パスの横断を許可するかどうかRewrite: { '^/api': '' } } }, 以前: app => { } } } 4. srcサブディレクトリの下のapiフォルダにapi.jsファイルを作成し、axiosを単純にカプセル化します。 'axios' から axios をインポートします //ここでは要素の読み込みを参照します。全画面読み込み。import { Loading } from "element-ui"; constサービス = axios.create({ ベースURL: '/', timeout: 30000 // リクエストのタイムアウトを設定する}) 読み込み = ""; // リクエストインターセプター service.interceptors.request.use( (設定) => { // リクエストが送信される前に何らかの処理を行う if (!(config.headers['Content-Type'])) { 読み込み = Loading.service({ ロック: 真、 テキスト: "読み込み中...", スピナー: "el-icon-loading", 背景: "rgba(255,255,255,0.7)", カスタムクラス: "リクエスト読み込み", }); config.method == 'post'の場合{ config.headers['コンテンツタイプ'] = 'アプリケーション/json;文字セット=UTF-8' for (config.data内のvarキー) { if (config.data[キー] === '') { config.data[キー]を削除する } } config.data = JSON.stringify(config.data) } それ以外 { config.headers['コンテンツタイプ'] = 'application/x-www-form-urlencoded;charset=UTF-8' config.data = JSON.stringify(config.data) } } const トークン = "トークン" // 各リクエストにトークンを持たせます。['X-Token'] はカスタムキーです。実際の状況に応じて変更してください。if (token) { config.headers['Authorization'] = トークン } 設定を返す }, (エラー) => { 読み込み中。閉じる(); // 送信失敗 console.log(error) Promise.reject(error) を返します。 } ) // レスポンスインターセプター service.interceptors.response.use( (応答) => { 読み込み中。閉じる(); // dataAxios は axios によって返されるデータです // ロードインスタンスを閉じる(); 定数 dataAxios = レスポンス.data // このステータスコードは、バックエンドと合意したデータAxiosの戻り値です }, (エラー) => { Promise.reject(error) を返します。 } ) デフォルト サービスをエクスポートする 5. apiフォルダにhttpファイルを作成する // パッケージ化されたaxiosをインポートする // ps: カプセル化されていない場合は、axios を "./api" からインポートできます。 // /api はクロスドメインを構成するためのパス変数です。let reportUpload= '/api/report/upload' エクスポートconstアップロード= () => { axios.get( reportUpload ) を返します。 } 6. ページ内のインターフェースを呼び出す // カプセル化されたインターフェースを導入します import { Upload} from "@/api/http.js"; // async Upload() を使用して呼び出す { let { 結果 } = getlist() を待機します。 console.log(結果) }, 要約するこれで、vue での axios カプセル化の使用に関するこの記事は終了です。vue axios カプセル化に関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: WordPress実験を実装するための3つの仮想マシンのKVM展開の詳細説明
>>: bitronix を使用して MySQL に接続するときの MySQLSyntaxErrorException の解決方法
私が初めて Web 開発を独学で学んだ頃は、いわゆる DIV/CSS レイアウトはなく、テーブル レ...
フロントエンド プロジェクトでは、添付ファイルのアップロードは非常に一般的な機能であり、ほぼすべての...
Alibaba Cloud Dockerコンテナサービスの設定Alibaba Cloud Image...
原因は、プロセスが特定の時点でシステム制限を超える数のファイルと通信リンクを開くことです。 システム...
序文最近、花火アニメーションを作成しました。花火が散るアニメーションです。アニメーションの実装中、花...
CSS を使用して要素の円弧の動きを制御する方法CSS3 の新しい属性 transfrom トランジ...
目次1. 環境整備1.1 オペレーティング システムのバージョン1.2 ディスク容量1.3 ファイア...
Redux はデータ状態管理プラグインです。React や Vue を使用してコンポーネント化された...
この記事の環境はWindows 10、MySQLのバージョンは5.7.12-logです1. 基本的な...
目次リレーショナルデータベースとは何ですか?非リレーショナルデータベースとは何ですか? MySQL ...
削除する方法はいくつかあります:リンクを直接追加するonfocus="this.blur(...
Linux のファイル権限まず、現在のディレクトリ内のファイルの内容を確認しましょう。 ls -l ...
メモ帳プログラムは、HTML + CSS + JavaScript の 3 つの主要なフロントエンド...
間違いNavicat Premium を使用して MySQL に接続すると、次のエラーが発生します。...
ステップ: 1. 仮想マシンディレクトリに新しいdocker-compose.ymlファイルを作成し...