ce que j'aime bien c'est que tu expliques de façon différente pour chaque chose de façon a bien faire comprendre au lieu d'expliquer une fois avec un exemple alors certes pour ceux qui comprennent rapidement ca peut faire répétitif mais pour ceux qui ont du mal ca permet de bien comprendre chaque chose car expliquer de plusieurs façons/contexte différents.
Exactement, ça prend plus de temps mais ça permet de rendre l'information la plus accessible possible. Certaines personnes sont plus terre à terre, d'autres ont besoin de métaphore etc...
J'ai regardé ta vidéo sur les servers actions et ensuite celle ci et j'en suis ravie !! Tu es très pédagogue et tes schémas + exemples de code permettent de clarifier l'ensemble et c'est vraiment top! Surtout pour ce genre de notions entre server/client et les actions, les composants on peut très vite s'y perdre! Bravo et merci👍👍
Ta video est très utile et très clair. Comment ne pas devenir un expert de next js avec tes explications et la docs du framework. Merci pour ta video elle m'a aidé de fouuuuuu !
De la bomba ! Je me lance sur React et j'attaque avec Nextjs. Franchement, moi qui aie commencé il y a 10 ans sur PHP, en passant par de l'Ajax pour dynamiser tout ça... Nextjs c'est juste le top ! Tout a été pensé pour faire des applications flexibles aux petits oignons. Grave à tes vidéos et quelques shoots de ChatGPT, j'ai l'impression d'être attaché à une fusée. Cool, continue comme ça, tu nous fais du bien. Parceque là Doc Nextjs c'est pas évident de faire le tri entre toutes les versions majeures. En plus, j'ai bien l'impression que tout n'est pas à jour. Bref, je me suis mis à Nextjs en 2024 😅
Merci pour la vidéo très édifiantes. Perso, j'aime également beaucoup next Js. Mais si je ne me trompe pas, Remix également supporte les server components
Merci, je te découvre que très récemment. Après quelques vidéos (très intéressantes), celle-ci vient me convaincre de m'abonner, de liker et de commenter. Merci pour ce partage très complet, très beau travail ! J'espère que tu continueras ainsi... A ce propos, envisages-tu de faire un cours de A à Z sur l'entièreté de NextJS 13 (avec typescript) ? J'ai pas mal expérimenté jusqu'à Next 12 mais la version 13 change pas mal de trucs fondamentaux et c'est pas forcément facile de s'y retrouver, même avec la doc, notamment avec la revalidation qui a l'air capricieuse et qui ne fait que du SWR (disparition de l'option fallback='blocking') J'ai un exemple de pages statiques contenant des données issues d'une api externe, ces données ne changent que peu souvent, j'aimerai donc renouveler ces pages que toutes les 24h, or, quand la page est redemandée à partir des 24h, la revalidation se fait mais c'est quand même l'ancienne page qui est rendue à ce moment et il faut refresh pour avoir la nouvelle. Ces page doivent se rendre selon l'ISR car je veux pas fetch l'api externe à chaque demande de la page alors que les données n'ont probablement jamais changées (gaspillage). J'ai contourné ce problème à l'aide de middleware appelant une route provoquant cette revalidation comme je souhaite à travers un NextApiResponse.revalidate(ma page) dans un dossier pages/api/revalidation (old school) car ce revalidate fonctionne bien contrairement aux revalidatePath ou revalidateTag bien que cité dans la doc de Next13 app router. Si t'as lu mon commentaire jusqu'au bout merci, et si t'as une réponse à mon souci je suis preneur, ou mieux, une vidéo sur la revalidation en détail. :)
Merci beaucoup pour ces explications précieuses ! J'ai une question, comment tu utilises react query ducoup avec ces composants ? Tu l'utilises pas ? ou que dans les client component ? (ducoup on refait les requêtes côté client :/)
Serveur components c'est génial mais très très très très très très très frustrant des le début difficile a comprendre mais une fois comprise tu pleures de joie tu pleures de joie sincèrement
Depuis 2 jours je me tabasse le crane sur une pu*** de question, pourquoi est ce qu'il est recommandé d'utiliser de manière générale les server component sachant que toutes les libs extérieurs (i18n, globals store etc...) utilisent des providers qui sont des client component et donc transforment par essence tous les enfant (donc toute l'app) en client component. Hyper dur de trouver que les children ne sont pas transformer de la même manière qu'un component normal et merci de le dire explicitement ici ! Géniale la vidéo
Mec je suis en train de faire un petit projet en Next pour continuer mon apprentissage du code en général et surtout pour tester Next et je me suis retrouver bloqué entre des action possible server side et d'autre client side. j'ai regardé ta vidéo au pif du pif et là tu balances qu'on peut wrapper des server components dans des client components. Mec... 2 semaines que je cherche et toi tu résous le truc en 5s. Jpp comment je suis nul xDD
Très bonne vidéo on comprend bien quand utiliser l'un ou l'autre des composants. Je me demande si tu devrais pas mettre un lien pour récupérer les schémas ? J'en aurais bien eu besoin peut-être lors de ma prise de note même si je m'en suit passé.
super interessant merci! une question cependant, dans le cas d'une conversation en streaming, le composant interactif (question) peut il envoyer en props la question à son server component enfant afin de bénéficier de l'animation du stream (chatGPT like) pour supprimer le cligotement de 'lenfant du à la mease à jour faite par le state qui gere le resultat de la requete streaming?
Merci pour la vidéo Merlvin !! Une question concernant les clients components, tu mets que l'on ne peut pas utiliser la database côté client mais on peut quand même faire un fetch GET de la database, non ?
Petite question. Comment gères tu les questions d’invalidation de data avec les server components? Par exemple j’ai une liste de donnés et je peux interagir avec chaque élément de la liste(modification, suppression). Actuellement avec React query on va pouvoir invalider les données récupérées et forcer un « refetch » pour avoir un state bien à jour par rapport au serveur. Dans le cas des serveurs components comment procéder ?
Ce que je trouve dommage pour l'instant, c'est de ne pas pouvoir passer une fonction en tant que prop à un client comp depuis un server comp parent pour handle un event dans le child (qui est donc un client comp) Erreur : "Event handlers cannot be passed to Client Component props". Cela oblige a remonter encore le use client au parent, alors que le but initial est de "descendre" le plus possible le use client. Sinon super vidéo, très bon résumé c'est très clair.
Hello, merci beaucoup. Avec les server action, c'est maintenant possible. Sinon c'est assez logique que tu ne puisses pas passer une function qui fait une action du client dans un code server
Très bonnes explications ! A rajouté peut etre un que coté Perf ça se démarque encore plus sur le mobile, coté entreprise industrielles c'est pas gagné, lorsqu'une page télécharge 20 mo de js au 1er chargement et que personne s'en plein et qu'on te parle de green IT :). Actuellement il est difficile de promouvoir ce type de rendu lorsque la stack force à utiliser un tomcat + Java pour le front (ce qui rends la partie hydratation non disponible et que dans le meilleur des cas on fait un bon code splitting) une considération à la masse, pour les server components limite on devrai avoir une autre extension de fichier ( le use client n'est pas un marqueur assez fort), mais ça ce n'est pas nous qui le déciderons :)
Exactement, certaines personnes utilisent déjà `file.client.tsx` pour comprendre la différence d'un coût d'œil ! Et effectivement, déjà que uniquement Vercel le supportes il y a le temps avec que l'industrie ce mette à jour.
Un grand merci pour cette vidéo incroyable ! J'ai cependant une question. Si je souhaite créer un user context contenant des informations sur l'utilisateur (afin d'éviter de récupérer des informations dans ma base de données à chaque changement de page), et que je place ce contexte dans mon fichier "layout.tsx" à la racine du projet, l'application deviendra-t-elle complètement basée sur des composants côté client ? Car lorsque je fais cela, la page affiche mon composant vide sans les informations, puis le composant se met à jour avec mes données. Pourtant, le contexte est toujours actif. Même en utilisant le streaming, j'ai le même problème.
Hello Quentin, merci pour ton commentaire et désolé pour le temps de réponse ! Hésites pas à rejoindre mon discord codelynx.dev/discord pour poser des questions c'est beaucoup plus simple !
Je suis rassurée par la conclusion car j'ai beaucoup plus de clients components que de serveurs components. En tout cas j'espère que Next.js ne finira pas comme CRA car c'est vraiment un bon framework.
@@melvynxdev Javascript évolue tellement vite que les technologies deviennent obsolètes au bout de quelques années, voir carrément abandonné comme CRA. PHP c'est plus stable, par exemple.
C'est la meilleure vidéo sur le sujet que j'ai vue jusqu'à présent. Bravo pour la clarté de tes explications.
Un grand merci !
ce que j'aime bien c'est que tu expliques de façon différente pour chaque chose de façon a bien faire comprendre au lieu d'expliquer une fois avec un exemple alors certes pour ceux qui comprennent rapidement ca peut faire répétitif mais pour ceux qui ont du mal ca permet de bien comprendre chaque chose car expliquer de plusieurs façons/contexte différents.
Exactement, ça prend plus de temps mais ça permet de rendre l'information la plus accessible possible. Certaines personnes sont plus terre à terre, d'autres ont besoin de métaphore etc...
Ton optimisme et tes schémas aux petits oignons font toujours aussi plaisir, merci pour le partage ! :)
Merci beaucoup ❤️
Je commente parce que c’est le meilleur moyen pour dire a RUclips et à toi que j’aime ce genre de vidéo 🥲
Encore une pépite ce genre de vidéo !
Merci beaucoup ❤️❤️❤️
J'ai regardé ta vidéo sur les servers actions et ensuite celle ci et j'en suis ravie !! Tu es très pédagogue et tes schémas + exemples de code permettent de clarifier l'ensemble et c'est vraiment top! Surtout pour ce genre de notions entre server/client et les actions, les composants on peut très vite s'y perdre! Bravo et merci👍👍
Merci ça fait très plaisir !
Ta video est très utile et très clair. Comment ne pas devenir un expert de next js avec tes explications et la docs du framework. Merci pour ta video elle m'a aidé de fouuuuuu !
Merci beaucoup ahaha
Vidéo très bien illustré , ludique et une approche pédagogique de qualité. 100eme commentaire de satisfaction mérité !
Merci pour le soutien !
Merci ça m'a ouvert une toute nouvelle vision de comment coder mes applications web.
Comme moi !
Merci beaucoup. Tu m'a fait gagner beaucoup de temps avec cette video
Génial c'est avec plaisir ❤️
grand merci Melvynx pour ce tuto
top
Encore une très bonne vidéo avec de bonnes explications sur un sujet pas forcément évident à appréhender, top !
Génial merci beaucoup
Excellente logique d’explication ! Merci
merci beaucoup ça fait plaisir
Vraiment style tes cours, merci !
Merci beaucoup !
Bravo c'était trop bien expliquer merci ✨✨
merci
Merci pour ta vidéo, ça m'a bien motivé!
Génial !
masterclass, tu expliques super bien
merci beaucoup !
Bien expliqué Merci du fond du coeur
merci bcp...
Un grand merci pour le partage 🔥🔥
Merci à toi !
parfaite explication
Waahou merci !
Super boulot. Bravo !
Merci !
Merci pour ta vidéo et pour les croquis. Je suis plus convaincu par la sécurité que par le gain vitesse. 😮
Ahaha pourqoui ça ?
@@melvynxdev parce que en terme de vitesse, le gain est quand même minime.
Super vidéo comme d habitude
merci
Superbe vidéo, merci !
Génial merci beaucoup !
Super boulot encore une fois et super intéressant
Merci beaucoup ❤️❤️
Allez, la petite pose video avec mon Reacteur préféré.
love !
Merci beaucoup c'est bien expliqué
merci beaucoup
De la bomba ! Je me lance sur React et j'attaque avec Nextjs. Franchement, moi qui aie commencé il y a 10 ans sur PHP, en passant par de l'Ajax pour dynamiser tout ça... Nextjs c'est juste le top ! Tout a été pensé pour faire des applications flexibles aux petits oignons. Grave à tes vidéos et quelques shoots de ChatGPT, j'ai l'impression d'être attaché à une fusée.
Cool, continue comme ça, tu nous fais du bien. Parceque là Doc Nextjs c'est pas évident de faire le tri entre toutes les versions majeures. En plus, j'ai bien l'impression que tout n'est pas à jour.
Bref, je me suis mis à Nextjs en 2024 😅
On est tellement d'accord !
Vidéo de qualité !
Merci !
Très bien expliqué merci beau travail.
merci !
Merci à vous 😊
Merci à vous 😊
Merci Melvynx!
Merci à toi !
Merci pour ton travail
Merci beaucoup ❤️
Merci pour la vidéo très édifiantes. Perso, j'aime également beaucoup next Js. Mais si je ne me trompe pas, Remix également supporte les server components
je crois que tu trompes
Masterclass!!!!
Merci
Merci, je te découvre que très récemment. Après quelques vidéos (très intéressantes), celle-ci vient me convaincre de m'abonner, de liker et de commenter. Merci pour ce partage très complet, très beau travail ! J'espère que tu continueras ainsi...
A ce propos, envisages-tu de faire un cours de A à Z sur l'entièreté de NextJS 13 (avec typescript) ? J'ai pas mal expérimenté jusqu'à Next 12 mais la version 13 change pas mal de trucs fondamentaux et c'est pas forcément facile de s'y retrouver, même avec la doc, notamment avec la revalidation qui a l'air capricieuse et qui ne fait que du SWR (disparition de l'option fallback='blocking')
J'ai un exemple de pages statiques contenant des données issues d'une api externe, ces données ne changent que peu souvent, j'aimerai donc renouveler ces pages que toutes les 24h, or, quand la page est redemandée à partir des 24h, la revalidation se fait mais c'est quand même l'ancienne page qui est rendue à ce moment et il faut refresh pour avoir la nouvelle.
Ces page doivent se rendre selon l'ISR car je veux pas fetch l'api externe à chaque demande de la page alors que les données n'ont probablement jamais changées (gaspillage).
J'ai contourné ce problème à l'aide de middleware appelant une route provoquant cette revalidation comme je souhaite à travers un NextApiResponse.revalidate(ma page) dans un dossier pages/api/revalidation (old school) car ce revalidate fonctionne bien contrairement aux revalidatePath ou revalidateTag bien que cité dans la doc de Next13 app router.
Si t'as lu mon commentaire jusqu'au bout merci, et si t'as une réponse à mon souci je suis preneur, ou mieux, une vidéo sur la revalidation en détail. :)
Génial merci beaucoup, je pense continuer comme ça oui !
Top! Merci
merci à toi
Mille merci
Un plaisir pour moi !
Merci beaucoup pour ces explications précieuses ! J'ai une question, comment tu utilises react query ducoup avec ces composants ? Tu l'utilises pas ? ou que dans les client component ? (ducoup on refait les requêtes côté client :/)
Tu peux utiliser en client component oui
Tellement bien merci
avec pplaisir !
Tu es très pedagogue, tu ferais un très bon professeur !
Merci beaucoup !
Super merci :D
merci !!
Merci pour ton contenu
Avec plaisir
"LES REACT SERVER COMPONENTS" avec l'accent Texan c'était parfait
totalement
Parfait cet video rien a dire
merci !
Serveur components c'est génial mais très très très très très très très frustrant des le début difficile a comprendre mais une fois comprise tu pleures de joie tu pleures de joie sincèrement
Génial oui totalement
Depuis 2 jours je me tabasse le crane sur une pu*** de question, pourquoi est ce qu'il est recommandé d'utiliser de manière générale les server component sachant que toutes les libs extérieurs (i18n, globals store etc...) utilisent des providers qui sont des client component et donc transforment par essence tous les enfant (donc toute l'app) en client component.
Hyper dur de trouver que les children ne sont pas transformer de la même manière qu'un component normal et merci de le dire explicitement ici !
Géniale la vidéo
merci bcp
Mec je suis en train de faire un petit projet en Next pour continuer mon apprentissage du code en général et surtout pour tester Next et je me suis retrouver bloqué entre des action possible server side et d'autre client side. j'ai regardé ta vidéo au pif du pif et là tu balances qu'on peut wrapper des server components dans des client components.
Mec... 2 semaines que je cherche et toi tu résous le truc en 5s. Jpp comment je suis nul xDD
Non t'es pas nul tkt c'est pas si simple !
@@melvynxdev C'est gentil mec merci
Merci.
Merci à toi !
Très bonne vidéo on comprend bien quand utiliser l'un ou l'autre des composants.
Je me demande si tu devrais pas mettre un lien pour récupérer les schémas ? J'en aurais bien eu besoin peut-être lors de ma prise de note même si je m'en suit passé.
Ah oui, ce serait une bonne idée
super interessant merci! une question cependant, dans le cas d'une conversation en streaming, le composant interactif (question) peut il envoyer en props la question à son server component enfant afin de bénéficier de l'animation du stream (chatGPT like) pour supprimer le cligotement de 'lenfant du à la mease à jour faite par le state qui gere le resultat de la requete streaming?
tu peux afficher un composants avec une animation oui
Merci pour la vidéo Merlvin !! Une question concernant les clients components, tu mets que l'on ne peut pas utiliser la database côté client mais on peut quand même faire un fetch GET de la database, non ?
hmmm normalement pas
merci
Merci !
Petite question. Comment gères tu les questions d’invalidation de data avec les server components?
Par exemple j’ai une liste de donnés et je peux interagir avec chaque élément de la liste(modification, suppression). Actuellement avec React query on va pouvoir invalider les données récupérées et forcer un « refetch » pour avoir un state bien à jour par rapport au serveur. Dans le cas des serveurs components comment procéder ?
Hello, tu peux revalider le path entier avec un refresh ou un revalidate path dans le contexte de server action ;)
Ce que je trouve dommage pour l'instant, c'est de ne pas pouvoir passer une fonction en tant que prop à un client comp depuis un server comp parent pour handle un event dans le child (qui est donc un client comp) Erreur : "Event handlers cannot be passed to Client Component props".
Cela oblige a remonter encore le use client au parent, alors que le but initial est de "descendre" le plus possible le use client.
Sinon super vidéo, très bon résumé c'est très clair.
Hello, merci beaucoup. Avec les server action, c'est maintenant possible. Sinon c'est assez logique que tu ne puisses pas passer une function qui fait une action du client dans un code server
TOP !!
merci !
Très bonnes explications !
A rajouté peut etre un que coté Perf ça se démarque encore plus sur le mobile,
coté entreprise industrielles c'est pas gagné, lorsqu'une page télécharge 20 mo de js au 1er chargement et que personne s'en plein et qu'on te parle de green IT :).
Actuellement il est difficile de promouvoir ce type de rendu lorsque la stack force à utiliser un tomcat
+ Java pour le front (ce qui rends la partie hydratation non disponible et que dans le meilleur des cas on fait un bon code splitting)
une considération à la masse, pour les server components limite on devrai avoir une autre extension de fichier ( le use client n'est pas un marqueur assez fort), mais ça ce n'est pas nous qui le déciderons :)
Exactement, certaines personnes utilisent déjà `file.client.tsx` pour comprendre la différence d'un coût d'œil !
Et effectivement, déjà que uniquement Vercel le supportes il y a le temps avec que l'industrie ce mette à jour.
Merci j'avais la flemme de me tapper la doc
y'a pas de doc encore :troll: mise à part vercel xD
Un grand merci pour cette vidéo incroyable ! J'ai cependant une question. Si je souhaite créer un user context contenant des informations sur l'utilisateur (afin d'éviter de récupérer des informations dans ma base de données à chaque changement de page), et que je place ce contexte dans mon fichier "layout.tsx" à la racine du projet, l'application deviendra-t-elle complètement basée sur des composants côté client ? Car lorsque je fais cela, la page affiche mon composant vide sans les informations, puis le composant se met à jour avec mes données. Pourtant, le contexte est toujours actif. Même en utilisant le streaming, j'ai le même problème.
Hello Quentin, merci pour ton commentaire et désolé pour le temps de réponse ! Hésites pas à rejoindre mon discord codelynx.dev/discord pour poser des questions c'est beaucoup plus simple !
Je suis rassurée par la conclusion car j'ai beaucoup plus de clients components que de serveurs components. En tout cas j'espère que Next.js ne finira pas comme CRA car c'est vraiment un bon framework.
Pourquoi ça finirait comme CRA ?
@@melvynxdev Javascript évolue tellement vite que les technologies deviennent obsolètes au bout de quelques années, voir carrément abandonné comme CRA.
PHP c'est plus stable, par exemple.