React Nativeでaxiosを使用してネットワークリクエストを行う方法

React Nativeでaxiosを使用してネットワークリクエストを行う方法

フロントエンド開発では、Ajax、jQuery ajax、axios、fetch など、データ要求を完了する方法が多数あります。しかし、テクノロジーの発展により、現在見られる 2 つの方法は基本的に axios と fetch です。

Axios は、ブラウザ側と Node.js で実行できる Promise ベースの HTTP ネットワーク ライブラリです。Vue アプリケーションのネットワーク リクエストは基本的にこれを使用して完了します。 Axios には、リクエストのインターセプトと応答、リクエストのキャンセル、自動 JSON 変換、XSRF に対するクライアント側の防御などのサポートなど、多くの優れた機能があります。

axios を使用する前に、プロジェクトに axios プラグインをインストールする必要があります。インストールコマンドは次のとおりです。

//npm 
npm インストール axios --save
//糸
糸に反応ネイティブaxiosを追加 

優れたネットワーク リクエスト ライブラリとして、axios は GET、POST、DELET、PUT などの基本的なリクエストをサポートしています。たとえば、axios を使用して GET リクエストを行う場合、以下に示すように、axios.get() メソッドと axios(config { ... }) を使用できます。

axios.get('/getData', {
    パラメータ: { 
      id: 123
    }
  }).then(関数 (応答) {
    console.log(応答);
  })

アクシオス({
  メソッド: 'GET'、
  URL: '/getData',
  パラメータ: {
    id: 123,
  }
}).then(関数 (応答) {
    console.log(応答);
}); 

axios をネットワーク リクエストに直接使用すると、冗長なコードが大量に生成されることがわかります。そのため、実際の開発プロセスでは、以下に示すように、後の使用を容易にするために、axios リクエストのカプセル化も必要になります。

axios をネットワーク リクエストに直接使用すると、冗長なコードが大量に生成されることがわかります。そのため、実際の開発プロセスでは、以下に示すように、後の使用を容易にするために、axios リクエストのカプセル化も必要になります。

定数リクエスト = axios.create({
  変換レスポンス: [
    関数(データ){
      データを返します。
    },
  ]、
});

const defaultOptions = { // デフォルト設定の処理 URL: '',
  ユーザーエージェント: 'BIZSTREAM ライブラリ'、
  認証:
    統合:
      access_token: 未定義、
    },
  },
};

クラス Bizstream {
  init(オプション) {
    this.configuration = {...defaultOptions、...options};
    this.base_url = this.configuration.url;
    this.root_path = '';
  }

  post(パス、パラメータ、データ、タイプ = ADMIN_TYPE) {
    this.send(path, 'POST', params, data, type) を返します。
  }

  get(パス、パラメータ、データ、タイプ = ADMIN_TYPE) {
    this.send(path, 'GET', params, data, type) を返します。
  }

  send(パス、メソッド、パラメータ、データ、タイプ、ヘッダーオプション) {
    定数 url = `${this.base_url}${this.root_path}${path}`;
    定数ヘッダー = {
      'ユーザーエージェント': this.configuration.userAgent、
      'コンテンツタイプ': 'application/json',
      ...ヘッダーオプション、
    };

    新しい Promise を返します ((resolve, reject) => {
      リクエスト({url, メソッド, ヘッダー, パラメーター, データ}).then(レスポンス => {
        .... // 返された結果を処理する});
    });
  }
}

エクスポート const bizStream = new Bizstream();

カプセル化後は、ネットワーク リクエストの実行がはるかに便利になり、ネットワーク層でいくつかの共通の戻り結果も処理されます。実際の使用では、開発者は必要に応じて必要なパラメータを渡し、返された結果を以下に示すように非同期関数を通じて処理するだけで済みます。

//GET リクエスト const hotMovie='';
const data = apiRequest.get(hotMovie); を待機します。
//POSTリクエスト let baseUrl = '';
パラメータ = {
   ページ番号: 0,
   都市Cd: 31,
 };
const data = apiRequest.post(baseUrl, param); を待機します。

React Nativeでaxiosを使ってネットワークリクエストを行う方法についての記事はこれで終わりです。React Nativeのネットワークリクエストについての詳細は、123WORDPRESS.COMの過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも123WORDPRESS.COMをよろしくお願いいたします。

以下もご興味があるかもしれません:
  • React プロジェクトにおける axios カプセル化と API インターフェース管理の詳細な説明
  • Reactのaxiosモジュールをご存知ですか?
  • React の Axios モジュールとその使い方
  • 1 つ以上のドメイン名への React axios クロスドメイン アクセス
  • Reactはaxiosを使用してAPIネットワークリクエストをカプセル化します

<<:  Windows で複数の MySQL インスタンスを実行する方法

>>:  Linux システムで httpd の自動インストールと構成を Ansible で実装する方法

推薦する

Vue で lodop 印刷コントロールを使用してブラウザ互換の印刷を実現する方法

序文このコントロールを直接印刷すると下部に透かしが入りますが、公式 Web サイトから購入することで...

MySQL の大文字と小文字の区別に関する注意

目次MySQLの大文字と小文字の区別はパラメータによって制御されますMySQLの大文字と小文字の区別...

Linux で MySQL 8.0 バージョンをアンインストールする方法

1. MySQLをシャットダウンする [root@localhost /]# サービスmysqldを...

手書きの Vue2.0 データハイジャックの例

目次1: webpackをビルドする2. データハイジャック3: まとめ1: webpackをビルド...

IE6 および IE7 で DIV コンテナの固定高さを使用するためのヒント

IE6 と IE7 では CSS の解釈に多くの違いがあります。今日はそのうちの 1 つである高さに...

ウェブサイト上で flv/MP4 やその他のビデオ ファイルを再生できない問題は、MIME タイプに関連しています。

ウェブサイトを作成している際に、flv や MP4 形式などのビデオ ファイルはローカルでは正常に再...

CSS最適化スキルの自己実践体験

1. CSS スプライトを使用します。利点は、CSS で使用される小さな画像を 1 つの大きな画像に...

HTML+CSS で div タグの右上隅に削除アイコンを追加するサンプルコード

1. 要件の説明Divタグの右上隅に削除アイコンを表示します2. 実装html、CSS 3. 参照コ...

JavaScriptで配列かどうかを判断するためのさまざまな方法のまとめ

目次序文配列.isArrayコンストラクタインスタンスプロトタイプオブジェクト.プロトタイプ.toS...

GNU Parallelの具体的な使用法

それは何ですか? GNU Parallel は、1 台以上のコンピュータでコンピューティング タスク...

HTMLのタグと要素の違いの詳細な説明

ウェブページに慣れていない友人の多くは私と同じように、HTML で要素、タグ、属性がどのように定義さ...

MySQL がタイムスタンプを使用するときにタイムゾーンの問題を無視できるのはなぜですか?

私はいつも、なぜMySQLデータベースのtimestampタイムゾーンの問題を無視できるのか疑問に思...

VUEはG2チャートを使用した実装を導入します

目次G2チャートについて使用テンプレートで使用される完全なコード (棒グラフ)世界地図を追加するG2...

コピー&ペーストはパッケージングの敵です

OO、デザイン パターン、および多くのオブジェクト指向の原則について話す前に、まず 1 つのことを習...

反応自動構築ルーティングの実装

目次順序1. 集中ルーティング2. ファイルディレクトリ3. CompileRouterを作成する4...