Vue ネットワーク リクエスト スキーム ネイティブ ネットワーク リクエストと js ネットワーク リクエスト ライブラリ

Vue ネットワーク リクエスト スキーム ネイティブ ネットワーク リクエストと js ネットワーク リクエスト ライブラリ

1. ネイティブネットワークリクエスト

1. XMLHttpRequest (W3C 標準)

// 約束がない場合の製品

その時は、全て呼び戻されて、面倒でした。

2. フェッチ

//promise に基づいて html5 によって提供されるオブジェクト。promise が存在するため、ネットワーク リクエストを簡素化するために使用されます。

Fetch の使用 - Web API リファレンス | MDN

Fetch は新しい Ajax ソリューションです。Fetch は Promise オブジェクトを返します。 Fetch は、Ajax をさらにカプセル化したものではなく、ネイティブ js であり、XMLHttpRequest オブジェクトを使用しません。

パラメータ:

1. 最初のパラメータは URL です。

2. 設定リクエストの2番目のパラメータはオプションパラメータです

3. 結果/コールバックを処理するためにPromiseを使用して返す

フェッチ(url、オプション)、次に(res=>res.json()/text())、次に(ret=>console.log(ret))

互換性の問題:

IE の下位バージョンが Fetch と互換性がない場合はどうすればいいですか? =》サードパーティのFetchライブラリ[fetch-polyfill]を使用する

fetch を使用してネットワーク リクエストを作成します。関連する操作を実行する前に、url1 url2 が両方のアドレスを同時に実行できるようにします。Promise.all

let url1 正常に実行されるかどうかに関係なく、Promise.finallyを処理する必要があります。

fetchはネットワークリクエストをカプセル化する

2. js ネットワークリクエストライブラリ

アクシオス

JSON データを Promise 型として返します。

ドキュメント: 説明書 · Axios 中国語説明書 · Kanyun

Axios は、ブラウザと node.js で使用できる promise ベースの HTTP ライブラリです。

リクエストとレスポンスをインターセプトし、JSON データを自動的に変換できます。 Axios は、Vue の作者が推奨するネットワーク リクエスト ライブラリでもあります。

// axios.get/post/put/delete
axios.get(url,config) // config はヘッダー情報を設定できます axios.post(url,data,config)
axios.put(URL、データ、設定)
axios.delete(url、データ、設定) 

またはインスタンス経由でリクエストする

インスタンスリクエストで設定情報(共通)を追加!

全員に対して設定されるので、インスタンス間で一律に設定しないでください(一般的には使用されません)。

// axios の axios.defaults.timeout = 10000 を設定します
axios.defaults.baseURL = 'http://localhost:3000'
axios.defaults.headers.a = '管理者'

投稿送信

// 投稿の送信 axios.post(url, { id: 1, name: 'aaaa' }).then(res => console.log(res.data))

または、axios は # 標準の書き方を直接使用します (一般的には使用されません)

// axios は axios({ を直接使用します
  URL、
  メソッド:'get',
  データ:{}
}).then(res => console.log(res))

インターセプターアスペクトプログラミング

(パイプライン) (ミドルウェア)

1. リクエストインターセプター(複数回呼び出すことができます)

axios.interceptors.request.use(config => {
  // リクエストドメイン名アドレスの統一設定 config.baseURL = 'http://localhost:3000'
  // タイムアウト config.timeout = 1000
  // ヘッダー情報を設定する config.headers.token = 'mytoken login'
  設定を返します。
}, err => Promise.reject(err))

2. レスポンスインターセプター(処理、フィルタリング)

axios.interceptors.response.use(レスポンス => {
  応答データを返す
}, エラー => {
  // これをレスポンスインターセプターで一様に処理できます。リクエスト例外アラート(「リクエストに失敗しました。再度リクエストしてください」)
  Promise.reject(err) を返します。
});

上記は、ネットワーク リクエスト ソリューションのネイティブ ネットワーク リクエストと js ネットワーク リクエスト ライブラリの詳細です。ネイティブ ネットワーク リクエストと js ネットワーク リクエスト ライブラリの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • js クロスドメイン リクエスト データの 3 つの一般的な方法
  • WeChatアプレットネットワークリクエストのパッケージ化とギャップの埋め合わせ
  • Vue プロジェクトでの Axios リクエスト ネットワーク インターフェースのカプセル化のサンプル コード
  • Vue が ajax リクエストを送信する詳細な説明
  • Vueネットワークリクエストのインターセプターの実用的応用に関する簡単な説明
  • Vueでデータを要求する3つの方法

<<:  MySQL シリーズ 11 ログ

>>:  HTML テーブル データを Json 形式に変換するサンプル コード

推薦する

Nest.js 環境変数の設定とシリアル化の詳細な説明

環境変数の設定の簡単な説明プログラムは、環境によって異なる環境変数を必要とします。たとえば、実稼働環...

docker pull imageエラーの問題を解決する

説明する: Windows 10 に VM をインストールし、VM で Docker を実行し、Do...

vue+echartsチャートの使用に関する問題記録

序文echarts は私が最もよく使用するチャート作成ツールであり、非常に完全なエコシステムとコンテ...

docker リモート API のワンクリック TLS 暗号化の実装

目次1. Docker の 2375 ポートを別のポートに変更します。これは一時的な対策にすぎません...

Windows での MySQL の使用: 自動スケジュールバックアップの実装

1. バックアップスクリプトを書く 著者:www.yumi-info.com 日付:20171222...

MySQL ストアド プロシージャ、カーソル、トランザクションの例の詳細な説明

MySQL ストアド プロシージャ、カーソル、トランザクションの例の詳細な説明以下は私が作成した M...

Linux で 1 つのファイルの内容を別のファイルの末尾にコピーする

問題の説明:たとえば、ファイル 11 の内容は次のとおりです。こんにちはファイル22の内容は次のとお...

コードを通じてHTMLエスケープ文字を識別する方法について説明します

データ内に次のような特徴を持つ「 ' 」などの文字が含まれることがあります。 &# ...

デザイン理論: テキストの読みやすさと可読性

<br />少し前に、ビジネス上の必要性から、ラップトップに Souba をインストール...

Dockerを使用して分散lnmpイメージを作成する

目次1. Docker分散lnmpイメージ生成1. Nginx、MySQL、PHPコンテナを実行する...

5分でWebRTCビデオチャットを構築する

前回の記事では、Ubuntu 上の webrtc ベースの多人数ビデオチャット サービスの詳細なコー...

WeChatミニプログラムの基本チュートリアル:Echartの使用

序文まずは最終的な効果を見てみましょう。私が自分で作った小さなデモです。まずEChartsの公式サイ...

VMWare12 グラフィックチュートリアルで Apple Mac OS X をインストールする

1. はじめに:友人はシステム知識を学びたいと考えており、Apple のラップトップを使用していまし...

HTML ページの先頭に戻るいくつかの実装の概要

最近、ウェブサイトを開発する際にトップに戻るボタンを作成する必要がありますが、私は主にバックエンドの...