Vue.js ist ein beliebtes JavaScript-Framework, das für den Aufbau reaktiver Benutzeroberflächen verwendet wird. Ein zentrales Merkmal ist seine Fähigkeit, Änderungen in Daten automatisch zu erfassen und sie auf der Benutzeroberfläche widerzuspiegeln. Dies wird als Reaktivität bezeichnet.
Allerdings existieren bestimmte Einschränkungen in Bezug auf Reaktivität. Eventuelle Änderungen in einem Objekt, das nach der Instanziierung einer Vue-Instanz erstellt wurde, werden standardmäßig nicht erkannt und reaktiv gehandhabt.
Hier hilft uns die Methode Vue.set
. Mit Vue.set(object, key, value)
kann man ein Objekt also reaktiv auf Änderungen machen, das ursprünglich nicht reaktiv war.
Stellen Sie sich vor, Sie haben ein Vue-Objekt erstellt und ein Datenobjekt instanziiert:
var vm = new Vue({
data: {
user: {
name: 'Mark'
}
}
})
Nun möchten Sie ein neues Eigenschaft age
zum user Objekt hinzufügen. Der intuitive Weg dazu wäre: vm.user.age = 25
. Doch das aktualisiert die Benutzeroberfläche nicht, da Vue.js Änderungen auf diese Weise nicht erkennt.
Die Lösung besteht darin, die Vue.set
Methode zu verwenden:
Vue.set(vm.user, 'age', 25);
Jetzt wird age
als reaktive Eigenschaft hinzugefügt und jeder zukünftige änderung an age
wird korrekt auf der Benutzeroberfläche widergespiegelt.
Vue.set ist ein mächtiges Werkzeug, mit dem Sie die Limitierungen der standardmäßigen Vue-Reaktivität überwinden können. Es ist jedoch immer wichtig, das korrekte Verständnis und die korrekte Verwendung dieser Funktion sicherzustellen, um unerwartetes Verhalten und Leistungsprobleme zu vermeiden.