Salut,
Bravo pour ce cours introductif sur l'API de composition.

J'ai une remarque:
j’importe la fonction reactive (ligne 19) et je déclare une propriété john comme étant réactive (ligne 24-28). Attention ! Une référence de type reactive n’est pas encapsulée derrière un proxy, et donc mieux vaut déclarer ce genre de variables comme étant muable ! (Avec le mot-clé let). Et bien-sûr, je n’oublie pas d’exporter la référence john pour le template (ligne 43) ;
Je pense que c'est une erreur, l'objet passé en paramètre est bien wrappé dans un proxy.
https://v3.vuejs.org/api/basic-reactivity.html#reactive
Par ailleurs, déclarer un objet en const n'empêche pas d'écrire ses propriétés, ni d'en ajouter / supprimer. Ca empêche simplement de le réaffecter globalement la constante.
1 2 3 4 5 6 7
|
let jambon = reactive({});
jambon = 2; // pas de problème JS
const fromage = reactive({})
fromage.trou = false; // pas de problème
fromage = 2; // pas possible |
Dans ce cas là, ca ne change pas beaucoup, mais si jambon est envoyé dans le template et qu'un événement change la valeur de jambon, ca ne va pas se passer comme on veut
1 2 3 4 5 6 7 8
|
setup() {
let jambon = reactive({});
setTimeout(() => {
jambon = 2;
}, 5000);
return { jambon };
} |
Je pense qu'il également intéressant de préciser qu'il est possible d'utiliser les APIs de composition avec vue2 en utilisant le plugin
@vue/composition-api. Quand on a un projet conséquent en vue2, on peut "préparer" une migration en vue3 avec l'API de composition, et surtout arrêter de faire des mixins qui se transforment vite en plats de spaghetti. L'API n'est pas 100% couverte, mais on peut faire beaucoup de choses...
1 |
0 |