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 形式に変換するサンプル コード

推薦する

HTMLでのフォーム送信の実装

フォーム送信コード1. ソースコード分析 <!DOCTYPE html> <htm...

コンピュータが予期せずシャットダウンした後、VMware で Linux がインターネットに接続できない問題の解決策

問題の説明: Linux システムのネットワーク カード ファイル /etc/sysconfig/n...

Docker での RocketMQ の詳細なインストールと使用

RocketMQ イメージを検索するには、Docker の hub.docker.com で検索する...

カルーセル例の JavaScript 実装

この記事では、カルーセルの効果を実現するためのJavaScriptの具体的なコードを参考までに共有し...

Alibaba Cloud MySQL スペースをクリーンアップする方法

今日、Alibaba Cloudからディスク警告通知を受け取りました。確認したところ、100Gのスペ...

Linux で独自の Nexus プライベート サーバーを構築する方法

この記事では、Linuxサーバー上でDockerを使用してNexusプライベートサーバーを構築する方...

デザイン理論: デザインにおける階層

<br />原文: http://andymao.com/andy/post/80.ht...

JavaScriptのイベントループの仕組みの分析

目次序文: 1. イベント ループとタスク キューの理由: 2. イベントループメカニズム: 3. ...

MySQL双方向バックアップの実装方法

MySQL 双方向バックアップはマスター-マスター バックアップとも呼ばれ、両方の MySQL サー...

CSS スタイル分類入門(基礎知識)

CSSスタイルの分類1. 内部スタイル ---- インラインスタイルスタイルタグの使用 <ス...

ドラッグ可能なログインボックスを実現するネイティブJS

この記事では、ネイティブ JS で実装されたドラッグ可能なログイン ボックスを紹介します。その効果は...

docker-compose.yml ファイル内の一般的なテンプレート コマンドの詳細な説明

注意: docker-compose.yml ファイルを書き込むときは、すべてのコロン (:) とダ...

MySQL 選択最適化ソリューションに関する簡単な説明

目次実生活からの例クエリが遅い最適化する方法カウント制限最大値と最小値 min&max実生活...

HTML Web ページにおける URL の表現

HTML では、一般的な URL はさまざまな方法で表現されます。相対 URL:コードをコピーコード...