Event sur Data change ? possible


#1

Bonjour à tous,

Voila j’ai 2 variables dans mes data:()
Val1: “”,
Val2:""

sur un bouton ou tout autre actions la val1 va prendre des valeurs “brutes”.
Et je chercher à savoir comment faire pour transformer les valeurs de Val1 dans Val2

Exemple à un moment donné Val1 va avoir pour valeur : [“to-1”,“to-2”,“to-3”, “ti-02”]
et j’aurais besoin que Val2 prennent et transforme les valeurs selon un reférentiel…

bref en gros je cherche a savoir si il existe un déclancheur d’un event, sur le changement de Val1 ?

exemple pas reel des nouvelles valeurs de Val2 en fonction de Val1:

Merci par avance.
cH.

Val2: [
{
“id”: “1”,
“name”: “toto”,
“children”: [
{
“id”: 1
},
{
“id”: 2
},
{
“id”: 3
}
]
},
{
“id”: “2”,
“name”: “titi”,
“children”: [
{
“id”: 1
}
]
}
]


#2

Bonsoir,

data () { return { Val1: 1 }; }, computed: { Val2 () { return this.Val2 + 1; } }

De cette manière, Val2 s’adapte automatiquement en fonction de Val1, sa valeur est mise en cache et n’est recalculée que lorsqu’une de ses dépendances(ici Val1) change


#3

Merci beaucoup Shizzen.
Effectivement c’est une bonne methode.

Mais entre temps j’ai trouvé les Watchers.

watch: {
val1: function() {
this.val2 = this.val1 * 2;
}

dès que val1 change de valeur, val2 se calcule automatiquement
vraiment génial :wink:


#4

@trotroyanas Pas de souci, mais si tu te réfères à la doc, les computed sont justement la meilleure manière d’obtenir une valeur dépendante d’une autre. Tu n’as même pas besoin de dire quelle data est surveillée, le simple fait de la mentionner dans une computed crée une dépendance, la computed est mise en cache et est automatiquement réévaluée lorsqu’une dépendance évolue.
Les watchers sont à utiliser pour des effets de bord ou de l’asynchrone (requête API par exemple)

Voici un fiddle de comparaison :wink:


#5

ha ouais merci beaucoup, effectivement je ne savais pas, je vais refaire mon bout de code avec les bonnes pratiques alors.
Encore merci à toi :wink: