序文現在、プロジェクトでは、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 の解決方法
ウェブサイトの互換性のデバッグは本当に面倒です。今日のウェブサイト デザイナーは、以前よりもはるかに...
まず、action はフォームの属性です。HTML5 では必須の属性値として定義されています。onS...
目次1. 概要2. 属性1. 数学演算子2. 比較演算子3. ブール演算結論1. 概要BigInt ...
オペレーティング システム win10 MySQL は、公式 Web サイトからダウンロードした 6...
一般的なNginx構成ではクロスドメインが可能 サーバー{ 11111 を聞いてください。 serv...
ZFSの歴史Z ファイル システム (ZFS) は、2001 年に Matthew Ahrens と...
1 ダウンロードアドレスは https://dev.mysql.com/downloads/mysq...
目次1. インストールの準備1. Linux関連情報の表示(Linuxコマンドライン操作) 2. M...
目次1. インスタンスをインストールして作成する2. vue-router4の新機能2.1 動的ルー...
最初の方法Alibaba Cloud および Baidu Cloud サーバーが利用可能です。 ! ...
目次1. 需要2. 解決策3. 最初の改善4.砂糖を加える5. 理解不能6. 問題点7. オブジェク...
1. 絶対位置とマージンを使用するこの方法の原則は、左側と右側をドキュメントの流れから外れるように配...
1. MySQLをインストールする # docker で mysql をダウンロード docker ...
序文Github にある以前のコードには、CUDA 8.0 環境が必要なものもあります。初心者の場合...
<br />私が良いと思った国内のデザインサイトをまとめてみました。広告ではありません!...