⊗jsrxPmSDIM 37 of 57 menu

Pemasangan msw untuk Berkerja dengan Bahagian Pelayan dalam Redux

Dalam pelajaran sebelumnya, kami telah membuat beberapa perubahan tambahan dalam aplikasi kami. Sekarang kami perlu memahami pelayan, yang akan digunakan oleh aplikasi kami untuk berkomunikasi data.

Kami tidak akan mempunyai pelayan sebenar, jadi kami hanya akan mensimulasikan kerja dengannya, menggunakan alat hebat Mock Service Worker. Mock Service Worker (MSW) ialah alat untuk mensimulasikan API, yang menggunakan API Pekerja Perkhidmatan yang distandardkan, direka untuk memintas permintaan pada tahap rangkaian. MSW akan menjana respons palsu (responses) kepada permintaan kami (requests). Lebih-lebih lagi, seperti yang dinyatakan oleh pemaju, alat ini sangat berkesan dan fleksibel sehingga selepas menyahpepijat dengan mock (yang mana dalam aplikasi tidak memerlukan apa-apa khas untuk dicipta), aplikasi boleh dilancarkan untuk bekerja dengan pelayan luaran yang sebenar. Dokumentasi untuknya agak luas, dan, jika anda berminat dengan MSW, anda boleh membacanya di laman web rasmi.

Mari kita beralih kepada pemasangan msw. Untuk ini, buka projek produk kami dan dalam terminal taip:

npm install msw --save-dev

Untuk msw berfungsi, kami juga perlu mencipta dan menyalin mockServiceWorker.js ke dalam beberapa direktori awam. Selalunya ia adalah folder public. Kami mempunyai folder kosong public, mari salin fail itu ke sana. Untuk ini, jalankan dalam terminal perintah dan kemudian setuju untuk menggunakan public:

npx msw init public

Sekarang lihat dalam public, sepatutnya muncul skrip yang dijana mockServiceWorker.js. Sekarang jalankan aplikasi produk kami dan dalam bar alamat penyemak imbas taip http://localhost:5173/mockServiceWorker.js (kerana aplikasi kami berjalan pada port 5173). Nampakkah dalam tetingkap penyemak imbas kandungan fail mockServiceWorker.js dipaparkan? Bermakna semuanya hebat, mari teruskan.

Seterusnya mari dalam folder src buat folder api, dan di dalamnya fail server.js, di mana kami akan menulis kod pelayan. Sekarang buka server.js dan import ke dalamnya fungsi setupWorker dari perpustakaan msw yang dipasang:

import { setupWorker } from 'msw/browser'

Di bawah dalam fail, buat pembolehubah worker dan eksportnya:

export const worker = setupWorker()

Dan sekarang mari buka fail main.jsx dan import worker kami ke dalamnya:

import { worker } from './api/server'

Sekarang sambungkannya kepada aplikasi kami. Untuk ini, kod yang kami gunakan untuk mencipta akar aplikasi React kami, kami akan bungkus dalam fungsi, namakan ia main dan baris pertama tambahkan padanya fungsi permulaan untuk worker. Sudah tentu jangan lupa untuk memanggil main itu sendiri. Kod penuh selepas semua baris dengan import kini akan kelihatan seperti ini:

async function main() { await worker.start({ onUnhandledRequest: 'bypass' }) ReactDOM.createRoot(document.getElementById('root')).render( <React.StrictMode> <Provider store={store}> <App /> </Provider> </React.StrictMode> ) } main()

Sekarang kami yakin bahawa aplikasi kami tidak akan mula berfungsi lebih awal (dan menghantar permintaan ;) ), daripada worker bermula.

Mari jalankan aplikasi kami dan buka dalam penyemak imbas konsol untuk pemaju. Jika anda melihat teks '[MSW] Mocking enabled.' di dalamnya, maka anda hebat dan telah memasang semuanya dengan betul!!!

Buka aplikasi anda dengan pelajar. Setelah membiasakan diri dengan bahan pelajaran ini, pasang Mock Service Worker untuk aplikasi anda.

Buat fail server.js, dan di dalamnya buat worker. Sambungkan worker ke aplikasi dalam main.js, seperti yang ditunjukkan dalam pelajaran. Pastikan semua berfungsi.

Melayu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan kuki untuk operasi laman web, analisis dan personalisasi. Pemprosesan data dijalankan mengikut Polisi Kerahsiaan.
terima semua tataletak tolak