Dieser Inhalt ist im Grunde eine Übersetzung der Originalmaterialien. Ziel ist es, mehr über KnockoutJs für Magento 2 zu erfahren und Inhalte auf Portugiesisch über KnockouJs zu erstellen.
KnockoutJs führt das Konzept von Observablen ein, bei denen es sich um Eigenschaften handelt, die überwacht und automatisch aktualisiert werden können, wenn sich ihre Werte ändern. Diese Funktionalität ermöglicht es der Benutzeroberfläche, dynamisch auf Änderungen in Modell.
-Daten zu reagierenUm ein Observable in KnockoutJs zu erstellen, können Sie die Funktion ko.observable() verwenden und ihr einen Anfangswert zuweisen. Um auf den aktuellen Wert einer Observable zuzugreifen, können Sie sie als Funktion behandeln. Um einfach etwas ohne Anfangswert zu beobachten, rufen Sie einfach die Eigenschaft Observable ohne Parameter auf.
let myObservable = ko.observable('Inicial'); console.log(myObservable()); // Irá imprimir 'Inicial' myObservable('Novo valor'); console.log(myObservable()); // Irá imprimir 'Novo valor'
Die Abonnements in Observablen sind Mechanismen, die es Ihnen ermöglichen, benachrichtigt zu werden, wenn sich der Wert eines Observablen ändert. Sie sind wichtig, um Änderungen in Observablen zu verfolgen und auf diese Änderungen zu reagieren, die Benutzeroberfläche zu aktualisieren oder bei Bedarf andere Maßnahmen zu ergreifen.
Die subscribe()-Methode ***empfängt eine *Callback-Funktion, die immer dann ausgeführt wird, wenn der Wert des Observable geändert wird. Die Funktion Callback erhält als Argument den neuen Wert des Observablen. Diese Funktion akzeptiert drei Parameter: callback ist die Funktion, die immer dann aufgerufen wird, wenn die Benachrichtigung erfolgt, target (optional) definiert den Wert davon in der Funktion callback und Ereignis (optional; Standardeinstellung ist „Ändern“) ist der Name des Ereignisses, das eine Benachrichtigung erhalten soll.
let myObservable = ko.observable('Inicial'); console.log(myObservable()); // Irá imprimir 'Inicial' myObservable('Novo valor'); console.log(myObservable()); // Irá imprimir 'Novo valor'
Ein weiterer wichtiger Punkt ist, dass es möglich ist, das Abonnement in einer Variablen zu speichern und das Abonnement bei Bedarf über die Methode dispose() zu kündigen. Dies ist nützlich, wenn Sie die Aktualisierung der Benutzeroberfläche als Reaktion auf Änderungen in Observablen vorübergehend oder dauerhaft deaktivieren möchten.
let myObservable = ko.observable(0); // Criando uma subscription no observable myObservable.subscribe(function (newValue) { console.log('Novo valor do observable:', newValue); }, scope, event);
Methoden zur Bestimmung der Arten von Observablen
Observables Arrays sind eine Erweiterung von Observablen und werden für den Umgang mit Listen von Daten verwendet, die beobachtbar sein müssen. Im Gegensatz zu einem Standard-JavaScript-Array ermöglicht Ihnen ein Observable Array, Änderungen an Listendaten automatisch zu verfolgen und die Benutzeroberfläche reaktiv zu aktualisieren.
let myObservable = ko.observable('Inicial'); console.log(myObservable()); // Irá imprimir 'Inicial' myObservable('Novo valor'); console.log(myObservable()); // Irá imprimir 'Novo valor'
Observables Arrays verfügen über spezielle Methoden, mit denen Sie Elemente reaktiv hinzufügen, entfernen und bearbeiten können. Einige dieser Methoden sind:
Bei Funktionen, die den Inhalt des Arrays ändern, wie z. B. push und splice, lösen die KO-Methoden automatisch den Abhängigkeitsverfolgungsmechanismus aus, sodass alle registrierten Listener über die Änderung benachrichtigt werden und Ihre Schnittstelle wird automatisch aktualisiert, was bedeutet, dass es einen erheblichen Unterschied zwischen der Verwendung von KO-Methoden (observableArray.push(...) usw.) und nativen JavaScript-array-Methoden (observableArray() .push(..) gibt. .)), da letztere keine Benachrichtigung an Array-Abonnenten senden, dass sich ihr Inhalt geändert hat.
Während es möglich ist, subscribe zu verwenden und wie jedes andere Observable auf ein observableArray zuzugreifen, bietet KnockoutJs auch eine superschnelle Methode, um herauszufinden, wie ein Array funktioniert Observable hat sich geändert (welche Elemente gerade hinzugefügt, gelöscht oder verschoben wurden). Sie können Array--Änderungen wie folgt abonnieren:
let myObservable = ko.observable('Inicial'); console.log(myObservable()); // Irá imprimir 'Inicial' myObservable('Novo valor'); console.log(myObservable()); // Irá imprimir 'Novo valor'
Berechnete Observablen sind Funktionen, die von einem oder mehreren Observablen abhängen und automatisch aktualisiert werden, wenn sich eine dieser Abhängigkeiten ändert. Die Funktion wird jedes Mal aufgerufen, wenn sich eine ihrer Abhängigkeiten ändert, und jeder zurückgegebene Wert wird an die Observablen übergeben, wie z. B. UI-Elemente oder andere berechnete Observablen.
Der Hauptunterschied zwischen Berechneten Observablen und Observablen besteht darin, dass Berechnete Observablen keinen Wert direkt speichern; Stattdessen verlassen sie sich auf andere Observablen, um ihren Wert zu berechnen. Dies bedeutet, dass der Wert einer Berechneten Observable immer automatisch aktualisiert wird, wenn eine der Observablen, von denen sie abhängt, geändert wird.
let myObservable = ko.observable(0); // Criando uma subscription no observable myObservable.subscribe(function (newValue) { console.log('Novo valor do observable:', newValue); }, scope, event);
Methoden einer berechneten Observable
Der zweite Parameter von ko.computed legt den Wert fest, wenn die berechnete Observable ausgewertet wird. Ohne die Übergabe wäre es nicht möglich, auf this.firstName() oder this.lastName() zu verweisen.
Es gibt eine Konvention, die eine vollständige Nachverfolgung vermeidet: Wenn der Konstruktor Ihres Ansichtsmodells einen Verweis darauf in eine andere Variable (traditionell „self“ genannt) kopiert, können Sie „self“ in Ihrem gesamten Ansichtsmodell und Sie müssen sich keine Sorgen machen, dass es neu definiert wird, um auf etwas anderes zu verweisen.
let myObservable = ko.observable('Inicial'); console.log(myObservable()); // Irá imprimir 'Inicial' myObservable('Novo valor'); console.log(myObservable()); // Irá imprimir 'Novo valor'
berechneten Observablen. Diese Konvention ist noch nützlicher, wenn es um Event-Handler geht.
berechnete Observable einfach einen Wert basierend auf einigen beobachtbaren Abhängigkeiten berechnet und zurückgibt, ist es besser, sie als ko.pureComputed statt als ko.computed zu deklarieren.
let myObservable = ko.observable(0); // Criando uma subscription no observable myObservable.subscribe(function (newValue) { console.log('Novo valor do observable:', newValue); }, scope, event);
berechnetes Observable als rein deklariert wird, ändert sein Evaluator andere Objekte oder Zustände nicht direkt, KnockoutJs kann seine Neubewertung und Speichernutzung effizienter verwalten. KnockoutJs wird es automatisch anhalten oder freigeben, wenn kein anderer Code eine aktive Abhängigkeit davon hat.
Beschreibbare berechnete ObservablenWritable Computed Observables sind eine Erweiterung von Computed Observables, die die Erstellung von berechneten Observablen ermöglichen, die sowohl durch Lesen als auch Schreiben aktualisiert werden können. Im Gegensatz zu herkömmlichen Berechneten Observablen, die ihren Wert nur auf der Grundlage anderer Observablen berechnen und keinen Wert direkt speichern, können Beschreibbare berechnete Observablen einen Wert speichern und auch eine Funktion zum Aktualisieren dieses Werts bereitstellen wenn nötig.
Um einbeschreibbares berechnetes Observable zu erstellen, ist es notwendig, die Funktion ko.computed mit einem Konfigurationsobjekt zu verwenden, das zwei Haupteigenschaften enthält: Lesen und Schreiben. Die Leseeigenschaft enthält die Berechnungsfunktion zur Bestimmung des Werts des Observablen, während die Schreibeigenschaft die Funktion enthält, die aufgerufen wird, wenn Sie den Wert des Observablen aktualisieren möchten.
Das obige ist der detaillierte Inhalt vonWie Observables in KnockoutJs funktionieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!