ホームページ > 記事 > ウェブフロントエンド > Axios と Fetch: HTTP リクエストにはどちらが最適ですか?
JavaScript で HTTP リクエストを行う方法はたくさんありますが、最も一般的な方法は、Axios とネイティブの fetch() API の 2 つです。この投稿では、これら 2 つの方法を比較対照して、どちらがさまざまなシナリオに適しているかを判断します。
HTTP リクエストは、Web アプリケーションのサーバーおよび API と通信するための基本です。 Axios と fetch() は両方とも、これらのリクエストを効果的に促進するために広く使用されています。それぞれの機能を詳しく見て、どのように積み重なるかを見てみましょう。
Axios は、HTTP リクエストを行うための Promise ベースの HTTP クライアントを提供するサードパーティ ライブラリです。シンプルさと柔軟性で知られており、JavaScript コミュニティで広く使用されています。
axios(config) .then(response => console.log(response.data)) .catch(error => console.error('Error:', error));
axios({ method: 'post', url: 'https://api.example.com/data', data: { key: 'value' } }) .then(response => console.log(response.data)) .catch(error => { if (error.response) { console.error('Server responded with:', error.response.status); } else if (error.request) { console.error('No response received'); } else { console.error('Error:', error.message); } });
fetch() は、最新の JavaScript の組み込み API であり、最新のすべてのブラウザーでサポートされています。これは、Promise の形式でデータを返す非同期 Web API です。
まず、npm または Yarn を使用して Axios をインストールします。
axios(config) .then(response => console.log(response.data)) .catch(error => console.error('Error:', error));
CDN 経由で Axios を含めることもできます:
axios({ method: 'post', url: 'https://api.example.com/data', data: { key: 'value' } }) .then(response => console.log(response.data)) .catch(error => { if (error.response) { console.error('Server responded with:', error.response.status); } else if (error.request) { console.error('No response received'); } else { console.error('Error:', error.message); } });
Axios を使用して GET リクエストを行う方法は次のとおりです。
npm install axios # or yarn add axios # or pnpm install axios
fetch() は組み込まれているため、何もインストールする必要はありません。 fetch() を使用して GET リクエストを行う方法は次のとおりです:
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
import axios from 'axios'; axios.get('https://example.com/api') .then(response => console.log(response.data)) .catch(error => console.error(error));
fetch('https://example.com/api') .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error(error));
アクシオス:
fetch(url, options) .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error('Error:', error));
フェッチ:
fetch('https://api.example.com/data', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ key: 'value' }) }) .then(response => { if (!response.ok) throw new Error('HTTP error ' + response.status); return response.json(); }) .then(data => console.log(data)) .catch(error => console.error('Error:', error));
アクシオス:
axios.get('/api/data', { params: { name: 'Alice', age: 25 } }) .then(response => { /* handle response */ }) .catch(error => { /* handle error */ });
フェッチ:
const url = new URL('/api/data'); url.searchParams.append('name', 'Alice'); url.searchParams.append('age', 25); fetch(url) .then(response => response.json()) .then(data => { /* handle data */ }) .catch(error => { /* handle error */ });
アクシオス:
axios.post('/api/data', { name: 'Bob', age: 30 }) .then(response => { /* handle response */ }) .catch(error => { /* handle error */ });
フェッチ:
fetch('/api/data', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ name: 'Bob', age: 30 }) }) .then(response => response.json()) .then(data => { /* handle data */ }) .catch(error => { /* handle error */ });
アクシオス:
axios.get('/api/data', { timeout: 5000 }) // 5 seconds .then(response => { /* handle response */ }) .catch(error => { /* handle error */ });
フェッチ:
const controller = new AbortController(); const signal = controller.signal; setTimeout(() => controller.abort(), 5000); // abort after 5 seconds fetch('/api/data', { signal }) .then(response => response.json()) .then(data => { /* handle data */ }) .catch(error => { /* handle error */ });
アクシオス:
フェッチ:
アクシオス:
catch ブロック内のエラーを処理し、2xx 以外のステータス コードをエラーとみなします。
async function getData() { try { const response = await axios.get('/api/data'); // handle response } catch (error) { // handle error } }
フェッチ:
手動ステータスチェックが必要です:
async function getData() { try { const response = await fetch('/api/data'); const data = await response.json(); // handle data } catch (error) { // handle error } }
要件によって異なるため、明確な答えはありません:
EchoAPI は、API の設計、デバッグ、テスト、モック化のためのツールを提供するオールインワンの共同 API 開発プラットフォームです。 EchoAPI は、HTTP リクエストを行うための Axios コードを自動的に生成できます。
Axios と fetch() は両方とも、JavaScript で HTTP リクエストを作成するための強力なメソッドです。プロジェクトのニーズや好みに最も適したものを選択してください。 EchoAPI などのツールを利用すると、開発ワークフローが強化され、コードが正確かつ効率的になることが保証されます。コーディングを楽しんでください!
以上がAxios と Fetch: HTTP リクエストにはどちらが最適ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。