React Hooks, geïntroduceerd in versie 16.8, zijn een revolutionaire toevoeging aan React waarmee je functionaliteiten van Class-Based components kunt gebruiken in functionele components. Dit eerste deel van de blog richt zich op belangrijke functies zoals `useEffect` en `useState`.
Waarom zijn Hooks ontwikkeld?
De introductie van Hooks gaat in op de complexiteit van classes. Classes vereisen vaak meer code en kunnen snel onhandelbaar worden in grote applicaties. Het begrijpen van het 'this'-concept, onnodige binding van event handlers en verspreide logica binnen lifecycle methods maken het leren van React met classes uitdagend.
Hooks bieden een gestroomlijnde aanpak, waardoor je state en andere React-functies kunt gebruiken zonder de noodzaak om volledige class components te schrijven. Dit maakt de code leesbaarder en gemakkelijker te begrijpen, vooral in grotere projecten.
Wat is een Hook?
Een Hook is een speciale functie die je toegang geeft tot specifieke React-functionaliteiten. Door deze functies te gebruiken, kun je eenvoudig state toevoegen aan functionele components zonder ze om te zetten naar class-based components.
`useState` – Beheer van State in Functionele Components
Wil je state gebruiken in functionele components? Gebruik dan de `useState` hook. Deze hook declareert een state variabele,
import React, { useState } from 'react';
const VoorbeeldComponent = () => {
const [weer, setWeer] = useState('Zonnig');
}
De `useState` hook retourneert twee waarden: de huidige waarde van de state (`weer`) en de functie om de state bij te werken (`setWeer`). In vergelijking met class-based components, waarbij we in de constructor `this.state = { weer: 'zonnig'}` zouden gebruiken, is deze hook een vereenvoudiging.
import react, { useState } from ‘react’;
const VbComponent = () => {
const [weather, setWeather] = useState(‘Zonnig’);
return(
<div>
<button onclick="”{()" ==""> setWeather(‘Regenachtig’)}”>
update weather state
</button>
</div>
)
}
`useEffect` – Voeg Side Effects toe aan je Component
De `useEffect` hook maakt het mogelijk side effects toe te voegen aan je component, vergelijkbaar met de lifecycle methods in class-based components. Je kunt deze hook gebruiken om data op te halen, event handlers te registreren en veranderingen in de DOM aan te brengen.
import React, { useEffect, useState } from 'react';
const VoorbeeldUseEffect = () => {
const [testState, setTestState] = useState([]);
useEffect(() => {
const helperFunctie = async () => {
const response = await fetch('https://eenwebsite/waar/de/content/staat/die/we/willen');
setTestState(response.data);
}
helperFunctie();
}, []);
return (
Wat JSX
);
}