アクシオスとフェッチ
4402 ワード
こんにちはDevelopers! Axios または fetch を使用して、サーバーとデータを通信/交換しています.どちらも、要件に応じて完璧に機能します.今日は、それらが提供する機能の点でどのように異なるかを詳しく見ていきます.
Axios — リクエストオブジェクトに URL があります
Fetch — リクエスト オブジェクトに URL がありません.
Axios — 手動でインストールする必要があるサードパーティのパッケージ. Github で 85.3k スター — 適切に管理された豊富な機能ライブラリ.
Axios — クロスサイト リクエストを防止するための CSRF (クロス サイト リクエスト フォージェリ) のサポートが組み込まれています.
フェッチ — CSRF をサポートしていません
Axios — リクエスト データにオブジェクトが含まれているため、リクエスト データで JSON オブジェクトを直接送信できます
Fetch — 要求データは文字列化する必要があります
Axios — 組み込みの JSON への変換応答
開発者
fetch — 2 段階のプロセスがあります.最初の応答は json に変換され、次に 2 番目のプロセスで開発者は json 応答を取得します
Axios — ユーザーが画面/コンポーネントを離れた場合、axios により開発者はリクエストをキャンセルできます
Fetch — Cancel API リクエストをサポートしていません
Axios — HTTP リクエストをインターセプトする組み込み機能を持つ
Fetch — http リクエストを傍受する方法を提供しません.
Axios — 開発者がデータ転送の進行状況を提供できるようにサポートし、ユーザーがサーバーと通信しているときに開発者が読み込みインジケータを表示できるようにします
取得 — アップロード/ダウンロードの進行状況をサポートしていません
Axios — サイドブラウザ機能をサポート
Fetch — Chrome 42+、Firefox 39+、Edge 14+、Safari 10.1 など、限られたブラウザーとバージョンのみをサポートします.
ブログを読んでくれてありがとう!
KPITENG |デジタルトランスフォーメーション
www.kpiteng.com/blogs | [email protected]
接続 |私たちに従ってください - | Facebook |
1.リクエストURL
Axios — リクエストオブジェクトに URL があります
axios
.get(url, {
headers: {
'Content-Type': 'application/json',
},
timeout: 1000 * 60,
})
.then(res => {
})
.catch(err => {
})
Fetch — リクエスト オブジェクトに URL がありません.
fetch(url)
.then((response) => response.json())
.then((json) => {
})
.catch(() => {
})
2. パッケージ
Axios — 手動でインストールする必要があるサードパーティのパッケージ. Github で 85.3k スター — 適切に管理された豊富な機能ライブラリ.
npm i axios
Fetch — ほとんどのブラウザーに組み込まれているため、インストールは不要です.3. CSRF保護
Axios — クロスサイト リクエストを防止するための CSRF (クロス サイト リクエスト フォージェリ) のサポートが組み込まれています.
フェッチ — CSRF をサポートしていません
4. データのリクエスト
Axios — リクエスト データにオブジェクトが含まれているため、リクエスト データで JSON オブジェクトを直接送信できます
axios
.post(url, jsonObject, {
headers: {
method: "POST",
headers: {
"Content-Type": "application/json",
},
},
timeout: 1000 * 60, // 1 min
})
.then((res) => {
if (res) {
return res.data;
}
})
.catch((err) => {
return err;
});
Fetch — 要求データは文字列化する必要があります
fetch(url, {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(jsonObject),
})
.then((response) => response.json())
.then((json) => {
})
.catch(() => {
});
If you want to start New React Project — Check out React Clean Architecture
5. 応答解析
Axios — 組み込みの JSON への変換応答
開発者
axios
.post(url, jsonObject, {
headers: {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
},
timeout: 1000 * 60, // 1 min
})
.then(res => {
if (res) {
return res.data; // Directly get JSON in Step - 1 Only - Managed by Axios
}
})
.catch(err => {
return err;
})
fetch — 2 段階のプロセスがあります.最初の応答は json に変換され、次に 2 番目のプロセスで開発者は json 応答を取得します
fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(jsonObject)
}).then((response) => response.json()) // Response Convert To JSON in this Step - 1
.then((json) => {
// Get JSON Object Here in Step - 2
})
.catch(() => {
})
6. リクエストのキャンセル
Axios — ユーザーが画面/コンポーネントを離れた場合、axios により開発者はリクエストをキャンセルできます
const cancelTokenSource = axios.CancelToken.source();
axios.get('/listing/1', {
cancelToken: cancelTokenSource.token
});
// Cancel request
cancelTokenSource.cancel();
Fetch - doesn’t support Cancel API request
Fetch — Cancel API リクエストをサポートしていません
7.リクエストインターセプター
Axios — HTTP リクエストをインターセプトする組み込み機能を持つ
Fetch — http リクエストを傍受する方法を提供しません.
8. アップロード/ダウンロード リクエストの進行状況
Axios — 開発者がデータ転送の進行状況を提供できるようにサポートし、ユーザーがサーバーと通信しているときに開発者が読み込みインジケータを表示できるようにします
取得 — アップロード/ダウンロードの進行状況をサポートしていません
9. ブラウザのサポート
Axios — サイドブラウザ機能をサポート
Fetch — Chrome 42+、Firefox 39+、Edge 14+、Safari 10.1 など、限られたブラウザーとバージョンのみをサポートします.
ブログを読んでくれてありがとう!
KPITENG |デジタルトランスフォーメーション
www.kpiteng.com/blogs | [email protected]
接続 |私たちに従ってください - | Facebook |
Reference
この問題について(アクシオスとフェッチ), 我々は、より多くの情報をここで見つけました https://dev.to/kpiteng/axios-vs-fetch-1eh5テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol