Saya menelepon layanan web dengan menggunakan fetch tetapi hal yang sama dapat saya lakukan dengan bantuan aksioma. Jadi sekarang saya bingung. Haruskah saya memilih aksioma atau mengambil?
ajax
reactjs
xmlhttprequest
es6-promise
es6-modules
Gorakh Nath
sumber
sumber
Jawaban:
Fetch dan Axios sangat mirip dalam fungsi, tetapi untuk kompatibilitas lebih lanjut Axios tampaknya bekerja lebih baik (mengambil tidak berfungsi di IE 11 misalnya, periksa posting ini )
Juga, jika Anda bekerja dengan permintaan JSON, berikut adalah beberapa perbedaan yang saya temui.
Ambil permintaan pos JSON
Permintaan posting Axios JSON
Begitu:
Semoga ini membantu.
sumber
Axios request is ok when status is 200 and statusText is 'OK'
Bagaimana dengan httpStatus lainnya dalam rentang 2xx seperti 201 atau 204?Itu adalah perpustakaan permintaan HTTP ...
Saya berakhir dengan keraguan yang sama tetapi tabel dalam posting ini membuat saya setuju
isomorphic-fetch
. Yang manafetch
selain bekerja dengan NodeJS.http://andrewhfarmer.com/ajax-libraries/
Tautan di atas mati. Tabel yang sama ada di sini: https://www.javascriptstuff.com/ajax-libraries/
Atau di sini:
sumber
fetch
sebagai asli ( Berarti Anda hanya dapat menggunakannya - tidak perlu menyertakan perpustakaan , sesuai dengan sumber tabel), sementara sebenarnyafetch
adalah tidak diterapkan di beberapa platform (terutama di semua versi IE), yang Anda butuhkan untuk memberikan polyfill eksternal tetap.timeout
(yang sangat aneh) kita harus menggunakan modul terpisah untuk mengimplementasikan fungsi dasar ini.Menurut mzabriskie di GitHub :
silakan periksa Dukungan Browser Axios
Saya pikir Anda harus menggunakan aksioma.
sumber
Satu lagi perbedaan utama antara mengambil API & axios API
sumber
Axios adalah paket pihak ke-3 yang berdiri sendiri yang dapat dengan mudah dipasang ke proyek Bereaksi menggunakan NPM.
Opsi lain yang Anda sebutkan adalah fungsi ambil. Tidak seperti Axios,
fetch()
dibangun ke sebagian besar browser modern. Dengan mengambil Anda tidak perlu menginstal paket pihak ketiga.Jadi terserah Anda, Anda bisa pergi dengan
fetch()
dan berpotensi mengacaukan jika Anda tidak tahu apa yang Anda lakukan ATAU hanya menggunakan Axios yang lebih mudah menurut saya.sumber
Selain itu ... Saya bermain-main dengan berbagai lib dalam pengujian saya dan memperhatikan perbedaan penanganan permintaan 4xx. Dalam hal ini pengujian saya mengembalikan objek json dengan respons 400. Inilah cara 3 lib populer menangani respons:
Yang menarik adalah itu
request-promise-native
danaxios
memberikan respons 4xx sementaranode-fetch
tidak. Jugafetch
menggunakan janji untuk parsing json.sumber
.throws
metode untuk menguji kesalahan yang dilemparkan. Dalam hal ini saya sedang menguji penolakan dari 3 lib dan melihat perbedaan dalam data yang dikembalikan.Manfaat aksioma:
Keuntungan
axios
lebihfetch
sumber