Implémente addOne
, qui augmente le compteur de 1 lorsque l'on clique sur le bouton.
Sans utiliser les frameworks et les librairies modernes, la tâche la plus difficile en JavaScript est de synchroniser l'état et le DOM.
Pourquoi les modifications du DOM sont-elles difficiles?
En 2013, la librairie React (Facebook) introduit l'architecture des composants.
Un composant est une unité de code contenant une pièce spécifique de fonctionalité ou d'UI.
En des termes plus pratiques, pensez à une balise HTML qui implémenterait du HTML, du CSS et du JavaScript.
Recréer entièrement une copie de l'interface à chaque changement, les comparer pour effectuer les changements nécéssaire minimaux.
Ceci nous permet d'écrire les UI de manière déclarative. Le programmeur ne doit s'occuper que de l'état.
React recrée l'interface à chaque changement d'état dans une copie (le virtual DOM) et le compare au DOM du navigateur pour effectuer la mise à jour la plus petite possible).
L'idée de base était de combiner la simplicité d'écrire une UI de zéro tout en gardant une certaine performance. Aujourd'hui, on se demande si le modèle limite un peu trop la performance.
Actuellement, les principaux frameworks sont
Comment choisit-on un framework?
En employant des critères tels que
La plupart des concepts introduits par les frameworks sont les mêmes. Nous les introduiserons par Svelte. La spécificité est de fournir une DX similaire à React avec plus de performance car on n'emploie pas de Virtual DOM.
Svelte a une syntaxe plus concise que React, et nous permettra de nous concentrer sur les concepts.
Svelte utilise le principe d'un composant par fichier (SFC), comme Vue.js. Imaginons que le fichier Counter.svelte
contienne le code suivant:
Vous pourrez réutiliser ce composant de la manière suivante:
Parfois vous voulez utiliser deux instances différentes du même composant.
Comment faire passer la propriété (prop) name = 'Mewtwo'
au composantPokemon
?
En Svelte: avec le mot clé export
Dans Svelte, on peut employer {#if ...}
, {:else if ...}
, {:else}
et {/if}
pour le rendu conditionnel.
La balise spéciale slot
est remplacée par les enfants du composants.
Lorsque l'on travaille avec des formulaires, il est nécéssaire de pouvoir lier une variable et la valeur d'un champ de texte. En svelte, ça se fait via la directive bind:value
.
Dans Svelte, une assignation réactive est préfixée par $:
. De telles quantités sont recalculées à chaque changement d'une dépendance.
¡Che, boludo! Me shamo Tuxie, tengo 7 años y soy un pingüino argentino. ¡No me pongan en el horno por favor!
Deux minutes plus tard
Bonjour! Je m'appelle Koï et j'ai beaucoup de tâches à accomplir aujourd'hui
Quelques heures plus tard
Il y a une subtilité qu'il faut que pour compreniez avant de travailler avec les objets et les tableaux.
Est-ce que a
et b
sont égaux (a === b
)?
Est-ce que a
et b
sont égaux (a === b
)?
...variable
: étend un objet ou un tableau en plusieurs arguments
La syntaxe de décomposition est utile pour déclencher le système de réactivité de Svelte.
Les arrays et les objets sont passés par référence. Une analogie utile serait de remarquer qu'on désigne parfois une maison par son adresse.
const arrayadresse = [1, 2, 3, 4]maison
En particulier, Svelte ne réagira pas à de tels changements.Le JSON est un format de texte léger qui permet l'échange de données entre client et serveur. Sa syntaxe ressemble aux listes et objets de JavaScript.