序文現在、プロジェクトでは、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 の解決方法
目次1. querySelectorは単一の要素を照会する1. ドキュメントインスタンスの呼び出し2...
この記事ではMySQL 8.0.15のインストールと設定方法を参考までに記録します。具体的な内容は以...
目次序文キーの役割差分アルゴリズムにおけるキーの役割ヘッドノードを同期するテールノードを同期する新し...
この記事の例では、動的な背景を実現するためのjsの具体的なコードを参考までに共有しています。具体的な...
この記事の例では、Reactカプセル化グローバルポップアップボックスの具体的なコードを参考までに共有...
HTML のヘッド部分には、ブラウザによる Web ページのレンダリングや SEO などに関連するタ...
1. ESを使うこともあるリソースが限られている、またはビジネス上のニーズにより、最新の期間のデータ...
コマンドを実行してプラグインpostcss-pxtoremをインストールします npm インストール...
Web ページ エンコーディングは英語では web page encoding と翻訳され、Web ...
以前、https://www.jb51.net/article/205922.htm で、Docke...
CSS によりプロセスナビゲーション効果を実現します。具体的な内容は以下のとおりです。 ::tip...
<br />質問: Word のコンテンツを Web サイトのエディターに直接コピーする...
この記事では、コードレイン特殊効果を実現するためのjQueryプラグインの具体的なコードを参考までに...
mysqlはデータディレクトリ内のファイルをコピーしてデータを復元します背景: MySQL がクラッ...
この記事では、主に HTML のサンプル コードを紹介し、次のように交互に色を変更する方法を共有しま...