序文現在、プロジェクトでは、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 の解決方法
前回の記事では、Ubuntu 上の webrtc ベースの多人数ビデオチャット サービスの詳細なコー...
現在、フロントエンドのパフォーマンス最適化について学んでいます。適切な解決策を見つけ、パフォーマンス...
目次ここでの問題は次の通りです:解決策1:解決策2: コンストラクタで初期化を割り当てる採掘場の概要...
序文MySQL は、2016 年もデータベースの人気において力強い成長傾向を維持し続けました。 My...
1. 指定されたディレクトリにリポジトリを作成し、ディレクトリ全体を保存してください。この記事のサン...
HTML で境界線を設定する 3 つの方法 境界線の幅: 1px 2px 2px; 境界線のスタイル...
a タグは主にページ ジャンプを実装するために使用され、これは href 属性または onclick...
目次導入Next.jsプロジェクトを作成するNext.js プロジェクトを手動で作成するcreact...
目次1. はじめに2. es5メソッド3. 非同期関数のシリアル実行4. 非同期関数の並列実行5. ...
名前キャラクター名前キャラクター情報ニューステクノロジー技術スキンケアスキンケア補う補う香水香水化粧...
VueはRefを使用してレベル間でコンポーネントインスタンスを取得します例の紹介開発プロセスでは、レ...
序文パブリック IP を持つ本番 VPS の場合、必要なポートのみが開かれ、IP とポートを制御する...
いわゆるカスケード レプリケーションでは、マスター サーバーが 1 つのスレーブ サーバーにのみデー...
この記事では、タブ切り替え効果を実現するためのJavaScriptの具体的なコードを参考までに紹介し...
Vueに触れたばかりのパートナーの多くは、開発環境ではVueプロジェクトは正常であるが、パッケージ化...