Hello tout le monde :-)

Merci à Grafikart pour ce site que je suis depuis longtemps :-)

Ma question porte plus sur la demande d'un conseil :

Dans les cours on ne parles que des composants fonctionnels et jamais des composants class dérivés de React.Component ainsi que tout ce qui en découle, nottament le fait que les hooks ne sont pas utilisables par exemple.

Actuellement j'ai commencé à apprendre react avec les class... mais je me rend compte que ce n'est pas le plus courant...

Une âme charitable voudrais bien m'expliquer les différences entre les deux et qu'est ce qui fait qu'on utiliserait un plutôt que l'autre ? Ce serait intéressant pour ceux et celles qui veulent partir sur l'une ou l'autre solution :-)

Merci !!!

3 réponses


popotte
Réponse acceptée

Hello :)

Alors Comme tu dis certains Hooks ne fonctionnent pas avec les class (oui ça a changé depuis la v18, avant AUCUNS hooks ne fonctionnait, maintenant certains oui, d'autres non)

Pour la différence... Alors il n'y en a pas vraiment, le but d'une class est de faire une instance isolée, mais tu as le même principe avec un component, donc concrètement les class components c'est juste du sucre syntaxique (une feature qui a uniquement pour but d'avoir un code plus agréable pour ceux qui sont habitués aux class (coucou les devs back ^^))

Bref tu peux faire comme tu veux, mais pour le moment je te conseilles d'éviter d'utiliser les class components (je faisais du Laravel avant de faire du React, j'avais commencé avec les class aussi, et de ma propre expérience: tkt tu vas t'habituer aux Functionnal :p)

Et pour ce qui est du fonctionnel, tu as deux écoles:

// Ca
export default function Home() {
    // ...
}

// Ou ca
const Home = () => {
    // ...
}

export default Home

En gros c'est ça ^^

Top ta réponse est très complète :-) , bon bah y a plus qu'à :-p
J'ai un projet que j'ai fais full Class... donc soit je le continue... soit je réécrits tout les composants 8-D !
Motivé, en tout cas merci pour ces infos et conseils ;-)

à bientôt @popotte

De rien ;)

Alors tu peux faire un changement progressif, tu gardes tes class, si une de tes class ont besoin de passer en fonctionnel tu réécris, et tes nouveaux components tu les fais en fonctionnel ^^