⊗jsrxPmSDIM 37 of 57 menu

Installatie van msw voor werken met de serverkant in Redux

In de vorige lessen hebben we een aantal extra wijzigingen in onze applicatie aangebracht. Nu moeten we de server begrijpen, waarmee onze applicatie gegevens zal uitwisselen.

We hebben geen echte server, dus we simuleren eenvoudig het werken ermee, gebruikmakend van het coole instrument Mock Service Worker. Mock Service Worker (MSW) is een instrument voor het simuleren van API, dat gebruikmaakt van een gestandaardiseerde API Service Worker, bedoeld voor het onderscheppen van verzoeken op netwerkniveau. MSW zal nepantwoorden (responses) genereren op onze verzoeken (requests). Bovendien, zoals de ontwikkelaars beweren, is het instrument zo effectief en flexibel dat na debuggen met mocks (waarvoor in de applicatie niets speciaals hoeft te worden gemaakt), de applicatie in productie kan worden genomen met een echte externe server. De documentatie eraar is behoorlijk uitgebreid, en, als je geïnteresseerd raakt in MSW, kun je deze lezen op de officiële website.

Laten we overgaan tot de installatie van msw. Hiervoor openen we ons project met producten en voeren we in de terminal in:

npm install msw --save-dev

Voor de werking van msw moeten we ook een mockServiceWorker.js maken en kopiëren naar een openbare map. Vaak is dit de map public. Wij hebben een lege map public, laten we het daarheen kopiëren. Start hiervoor in de terminal het commando en ga akkoord met het gebruik van public:

npx msw init public

Laten we nu in public kijken, daar zou het gegenereerde script mockServiceWorker.js moeten verschijnen. Laten we nu onze applicatie met producten starten en in de adresbalk van de browser http://localhost:5173/mockServiceWorker.js invoeren (aangezien onze applicatie op poort 5173 draait). Zie je dat in het browservenster de inhoud van het bestand mockServiceWorker.js wordt weergegeven? Dat is geweldig, we gaan verder.

Laten we vervolgens in de map src een map api maken, en daarin het bestand server.js, waarin we de servercode zullen schrijven. Laten we nu server.js openen en de functie setupWorker importeren uit de geïnstalleerde msw-bibliotheek:

import { setupWorker } from 'msw/browser'

Hieronder in het bestand maken we de variabele worker en exporteren deze:

export const worker = setupWorker()

Laten we nu het bestand main.jsx openen en onze worker importeren:

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

Laten we deze nu aan onze applicatie koppelen. Hiervoor wikkelen we de code, waarmee we de wortel van onze React-applicatie maken, in een functie, we noemen deze main en voegen als eerste regel de startfunctie voor de worker toe. Natuurlijk vergeten we niet main zelf aan te roepen. De volledige code na alle importregels ziet er nu als volgt uit:

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

Nu zijn we er zeker van dat onze applicatie niet begint te werken (en verzoeken te sturen ;) ), voordat de worker is gestart.

Laten we onze applicatie starten en de developer console in de browser openen. Als je daarin de tekst '[MSW] Mocking enabled.' ziet, dan heb je het goed gedaan en alles correct geïnstalleerd!!!

Open je applicatie met studenten. Na bestudering van het materiaal van deze les, installeer je Mock Service Worker voor je eigen applicatie.

Maak een bestand server.js aan, en maak daarin een worker. Koppel de worker aan de applicatie in main.js, zoals getoond in de les. Zorg ervoor dat alles werkt.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren