In 2.0.0-rc.1 ein Konstrukt wie
<p>Count: {{$refs.components && $refs.components.length}}</p>
<sub-component v-for="item in items" ref="components">
funktioniert nicht mehr (Zählung bleibt auf dem Anfangswert, auch wenn items
und damit die Komponentenanzahl geändert wird). In v1 wurden Arrays von $refs reaktiv aktualisiert.
Ich bin mir nicht sicher, ob dies ein Fehler oder ein Feature ist, aber #2873 scheint es nicht zu erwähnen.
Dies ist beabsichtigt - der Grund dafür ist, dass $refs
jetzt während des Rendervorgangs selbst registriert/aktualisiert werden. Es wird nicht empfohlen, sich in Vorlagen auf $refs
zu verlassen, da diese nur für den programmatischen Zugriff in JavaScript gedacht sind.
Ich habe #2873 aktualisiert, um dies aufzunehmen.
@yyx990803 bedeutet dies, dass die Verwendung von this.$refs.*
in computed
Eigenschaften auch in v2 nicht mehr funktioniert oder nur in Vorlagen verwendet wird? Muss ich das alles mit benutzerdefinierten Ereignissen lösen?
Ich gebe derzeit Validierungsergebnisse von Kindern auf diese Weise an die Eltern weiter.
Sie können this.$forceUpdate()
und setTimeout
, um die Ansicht neu zu rendern, wenn Sie die Daten aktualisieren und feststellen, dass $refs
nicht reaktiv aktualisiert wird.
this.fetchSomeShit()
.then((data) => {
this.data = data
setTimeout(() => {
this.$forceUpdate()
})
})
Verwenden Sie setTimeout
um sicherzustellen, dass die Daten in der Vue-Aufgabenwarteschlange angegeben wurden
Hilfreichster Kommentar
@yyx990803 bedeutet dies, dass die Verwendung von
this.$refs.*
incomputed
Eigenschaften auch in v2 nicht mehr funktioniert oder nur in Vorlagen verwendet wird? Muss ich das alles mit benutzerdefinierten Ereignissen lösen?Ich gebe derzeit Validierungsergebnisse von Kindern auf diese Weise an die Eltern weiter.