J'en vois beaucoup qui galèrent avec React…

Car ils font une app avant de comprendre la base

On va faire du React dans un fichier HTML, sans JSX pour comprendre cmt ça marche

#RT ❤️

Petit thread 👇 #thread #react + une vidéo YTB pour tout comprendre
Donc React c'est une library JavaScript où tout est JavaScript !

C'est possible de faire du React super facilement sans même Next / CRA etc...

On a l'impression que pour l'utiliser c'est lourd, mais avec 26 lignes de code l'app est ready
Qu'y a-t-il dans cette app ?

Une div #root qui est la div dans laquelle React va afficher le rendu

Ensuite avec les CDN de React reactjs.org/docs/cdn-links… on ajoute React et ReactDOM !

Puis, dans un script, on récupère le RootElement avec du JS basique
Puis, on crée un composant React.

Le premier argument définit le type de notre composant React si c'est une div, un header ou autre

Le deuxième sont les props qu'on lui donne

Ici comme c'est une div, on peut lui donner toutes les props basiques comme style, class ou id !
Puis tous les arguments après seront les enfants 👶

Pour les enfants, on crée deux éléments span sans props et avec comme enfants du texte

Le code fait ci-dessus va se traduire en HTML comme ceci :
Tu vois que le code précédent est quand même pas super cool à lire.

Donc React a dû trouver une solution pour écrire du React comme du HTML !

C'est là que le JSX est né !

Voici le code JavaScript fait cette fois avec JSX !
Quelques nouveautés ici :

Il y a un script pour importer babel !

Le type du fichier est maintenant type="text/babel"

Sinon j'ai fait comme du HTML cependant dans style, on passe un objet en JavaScript et pas en HTML avec une string
Ici notre code, c'est du JavaScript !

On peut donc l'utiliser partout dans notre JSX avec les { ... }

Tu as accès au dom, Windows, document etc...

Je peux, par exemple, faire un Math.random au milieu de mon code !
Donc maintenant je vais créer un petit composant button

Celui-ci va pouvoir être appelé partout exactement comme un élément HTML

Il est représenté par une fonction et les paramètres qui lui sont donnés
Tu te rappelles du code avec uniquement du javascript sans jsx ?

Et bah on peut le retrouver en utilisant le repl babel : babeljs.io/repl#?browsers… babeljs.io/repl#?browsers…

ici, on voit exactement ce qui se passe !

Babel va appeler React.createElement avec notre élément !
Ici ce que tu peux remarquer aussi, c'est que mon button a 2 paramètres :
* bgColor
* title

Que je peux ensuite définir dans le composant qui l'utilise !

Mais quand tu écris button tu fais : <button>text</button>

et là je dois faire <Button title="text" />
C’est pas très élégant

Mais en JSX tout ce qui est donné entre les balises se nomme "children"

Donc, je remplacerais la props title par children pour utiliser mon button comme ceci :

<Button>text</Button>

Voici le code !
En fait, il n'y a aucune magie noire, tout est compréhensible !

J'espère que tu as pu le comprendre...

Mais, j'ai préparé un tutoriel avec beaucoup plus d'infos dans une vidéo YouTube :

👉 👈

Hésite pas à me faire un feedback ici ou sur YouTube
Oublie pas de follow @melvynxdev ❤️💪😎

Si tu souhaite être averti de mes actus, tips et plein d'autres choses qui arrivent, tu peux t'inscrire ici : melvynx.com/emails

dernier thread :

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Melvyn • Développeur

Melvyn • Développeur Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @melvynxdev

Jul 8
Tu veux avoir un terminal d'ultra bg en trans sur leur config ?

En plus, tu vas gagner du temps car on utilise tous le terminal !

- auto-complete
- colorisation
- recherche dans l'historique

Petit tuto mais informe-toi aussi de ton côté !

#RT ❤️

👇 #thread #terminal #ide Image
1. Il faut utiliser zsh

bash ne permet pas de faire ça

zsh est bien mieux

sur Mac c'est par défaut sur linux je sais pas

sur windows il faut avoir WSL puis installer zsh (google is your friend)
2. install iterm ou autre terminal moderne

iterm2.com

j'aime beaucoup iterm car il est natif et fonctionne très bien

il a des options bien cool
Read 11 tweets
Jul 6
Chrome est l’outil principal du dev, évite de perdre du temps avec 5 extensions Chrome utiles 👍
Voici les extensions que j'utilise sur chrome, un thread 👇
1. Save to notion chrome.google.com/webstore/detai…

sauvegarde chaque petit article avec des tags comme @benjamincode en a fait le tutoriel

c'est ultra important pour ta veille et pour retrouver les sites qui t'ont fait kiffer
@benjamincode 2. wappalyzer.com

Espionne les technos que tes sites préférés utilisent

Exemple pour twitter Image
Read 7 tweets
Jul 1
Tout le monde sait ce qu'est `width` en CSS ?

Mais connais-tu ?

width: fit-content
width: min-content
width: max-content

J'ai pris longtemps avant de les connaître moi !

Et, je n'ai pas envie que ce soit ton cas...

#RT ❤️

👇 #thread #css #web
0. Comment fonctionne width

Contrairement à la height, la width prend par défaut toute la place disponible !

Alors que la height ne prend que la place minimum !

Pourquoi ? Ce sera le sujet d'un autre Thread

En fait, la valeur par défaut de width est « auto »
Donc quelle valeur peut prendre width ?

1. des mesures (100%, 100px, 1rem)
2. Keywords (auto, fit-content, max-content, min-content)

Let's explore the keywords !
Read 8 tweets
Jun 30
React a gagné 👑

Statistiquement, c'est celui à apprendre 🥇

Fin du débat.

Voici MON avis avec mes arguments, stats à l'appui 📈

Ne lis pas ce Thread si tu n'aimes pas React, car tu vas tomber in love ❤️

#RT et partage ton avis et contre-arguments 💪

🧵 #thread #react #web Image
0. Préambule

Je ne dis à aucun moment que les autres frameworks sont mauvais.
J'explique pourquoi j'ai fait le choix de React.
Je ne dirais aucun contre-argument car ce n'est pas le but ici ! C'est à toi de les faire !
Je suis ouvert à toutes les library.
1. La communauté

Et oui… C'est mon argument principal.

Dans le sondage 2021.stateofjs.com/en-US/libraries on voit que React arrive largement devant en nombre d'utilisateurs et en satisfactions !
L'intérêt a baissé certes mais les deux valeurs principales sont au RDV Image
Read 22 tweets
Jun 29
Quand on fait du CSS,
il y a des choses que tu ne connais pas avant qu'on t'en parle !

Par exemple c termes :
♦️box-sizing
♦️content-box
♦️border-box
♦️box-model

Mais c’est ton jour de chance car je l’ai expliques ici ❤️

#RT car 💪

👇 #thread
Le box-model se présente comme ça

On peut le comparer à une personne :
le content est le corps de la personne 🚶
le padding est l'espace entre son corps et ses vétement
la border sont les vétement
la margin est l'espace qu'elle a autour d'elle
Maintenant si je dis à une box qu'elle fait 100px de width et de height et qu'en plus elle a une margin de 10px rouge

Quelle est sa taille ?

Alors 100 + 10 (border right) + 10 (border left) = 120px

C'est étrange !

Je lui demande de faire 100px mais en réalité elle en fait 120
Read 10 tweets
Jun 28
Le temps est précieux pour un développeur !

Je te partage donc 6 outils pour gagner du temps 👇
favicon.io

Les favicons c'est le petit icon à côté de ton onglet sur les navigateurs

Génère tes favicons ultra rapidement avec ce site
Tu auras toutes les versions pour chaque taille d'écran
et il te donne le code snippet à c/c dans head
C'est super chiant à faire
logoipsum.com

Un moyen simple pour trouver des placeholder de tes logos et éviter de perdre du temps pour tes sites web
Read 8 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us on Twitter!

:(