web-dev-qa-db-fra.com

Utiliser la propriété calculée dans les données dans Vuejs

Comment puis-je utiliser une propriété calculée dans les données ou l’émettre via le bus?

J'ai l'instance vue vue suivante, mais myComputed est toujours indéfini mais computedData fonctionne correctement.

var vm = new Vue({
  data(){
    return{
      myComputed: this.computedData
    }
  },

  computed: {
    computedData(){
      return 'Hello World'
    }
  }
})
17
Clinton Green

Malheureusement, il est impossible d'utiliser la propriété calculée dans les données en raison du calendrier de création du composant: les données évaluent les propriétés calculées avant.

7
Zvezdochka

Pour rendre les choses aussi simples que possible, faites simplement le travail dans watcher, à moins que vous ne vouliez émettre les modifications sur différents composants ou qu'il y ait beaucoup de variables que vous souhaitez notifier, alors vous devrez peut-être utiliser Vuex ou le bus d'événements:

var vm = new Vue({
  data(){
    return{
      myComputed: '',
      computedData: 'Hello World'
    }
  },
  created() {
    this.myComputed = this.computedData;
  },
  watch: {
    computedData() {
      this.myComputed = this.computedData;
    }
  }
});
7
kevguy
  1. Calculé est déjà accessible dans le modèle à l'aide de {{}}.

  2. Mais vous pouvez utiliser le

watch:{
  //your function here
}

au lieu de calculé

2
SavedBeau