序文現在、プロジェクトでは、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 の解決方法
たとえば、次のように入力します。 XML/HTML コードdiv#ページ>(div#ヘッダー&...
目次1. useStateフック2. useRefフック3. useRef と useState 4...
目次現象:ポートの使用:ファイルにスペルミスがあります:現象: Tomcat がインストールされ、W...
1. 古い仮想DOMと新しい仮想DOMを比較し、まずキーが同じかどうかを確認します。 2. 引き続...
目次概要1. 使用状態1.1 3つの概念に関する質問1.2 例1.3 注記2. リデューサーを使用す...
more は、最もよく使用されるツールの 1 つです。最も一般的な使用方法は、出力コンテンツを表示し...
1. はじめに不明な値または部分的に既知の値をフィルタリングする場合は、like 演算子を使用でき...
1 ストアドプロシージャ1.1 ストアドプロシージャとは何かストアド プロシージャは、特定の機能を実...
目次1. レシピ集1.1 プロジェクトの背景1.2 テクノロジースタック1.3 開発環境1.4. プ...
Q: xml と html の違いがわかりません。違いは何ですか? A: XMLと HTML の違い...
<br />ページに <img src=""> が含まれ...
目次先読みと後読みをキャプチャグループと組み合わせる捕獲グループと非捕獲グループ前を向いて、後ろを振...
Linuxは特定のプログラムを見つけますwhereis コマンドは主にプログラム ファイルを検索し、...
クロスドメインソリューションjsonp (get をシミュレート) CORS (クロスオリジンリソー...
最近データベースを学び始めたのですが、とても興味深いコースだと感じていますが、含まれる内容の多くは私...