2017-06-01 4 views
3

Wie kann ich eine berechnete Eigenschaft in den Daten verwenden oder über den Bus ausgeben?Berechnete Eigenschaft in Daten in Vuejs verwenden

Ich habe die folgende vue-Instanz, aber myComputed ist immer undefiniert, aber computedData funktioniert ordnungsgemäß.

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

    computed: { 
    computedData(){ 
     return 'Hello World' 
    } 
    } 
}) 
+0

Warum brauchen Sie das? Sie können 'this.computedData' immer nur so aufrufen, wie Sie auf' this.myComputed' zugreifen würden. – jfadich

+0

Es funktioniert damit nicht. computedData ist nicht definiert. –

+1

Was ich meine ist, dass Sie auf berechnete Eigenschaften genauso zugreifen können, wie Sie auf Daten zugreifen, so dass Sie nicht das tun müssen, was Sie tun wollen. – jfadich

Antwort

2

Um die Dinge so einfach wie möglich zu machen, sind nur die Arbeit in Beobachter, es sei denn Sie eine Menge von Variablen die Änderungen an verschiedenen Komponenten oder es sind emittieren möchten Sie benachrichtigt werden möchten, dann müssen Sie unter Umständen Verwenden Sie Vuex oder den Ereignisbus:

var vm = new Vue({ 
    data(){ 
    return{ 
     myComputed: '', 
     computedData: 'Hello World' 
    } 
    }, 
    created() { 
    this.myComputed = this.computedData; 
    }, 
    watch: { 
    computedData() { 
     this.myComputed = this.computedData; 
    } 
    } 
}); 
Verwandte Themen