Javascript-Klassen: Statusverwaltung v2

Nachdem ich den Artikel Javascript classes: state management geschrieben hatte , bekam ich viel Input von Nige White (Kudos!) Und ging zurück zum Zeichenbrett. Das Konzept der Verwendung einer afterSetQueue funktionierte hervorragend für Eigenschafts-Querabhängigkeiten innerhalb von afterSetX-Methoden, konnte jedoch nicht innerhalb von beforeSetX-Methoden funktionieren.

Was will die neue Version erreichen?

Das Ausführen dieses Tests sollte zu folgenden Ergebnissen führen:

Wie Sie sehen können, verwendet beforeSetA this.b und beforeSetB this.a. Eine der gemeinsten möglichen x-Abhängigkeiten.

instance.set ({a: 3, b: 4}) wird es jedoch korrekt behandeln.

Kann ich diesen Test online durchführen?

Ja, hier: https://neomjs.github.io/pages/node_modules/neo.mjs/test/siesta/index.html#tests/ClassSystem.mjs

Erfordert dieses Konzept die Verwendung des neo.mjs-Frameworks?

Nein. Sie können das JS-Klassensystem auf dieselbe oder eine ähnliche Weise manuell erweitern. Falls Sie sich das neo.mjs-Framework jedoch noch nicht genauer angesehen haben, kann ich Ihnen dringend empfehlen, dies zu tun. Sie erhalten sofort Multithreading (die von Ihnen erstellten Apps sowie die meisten Teile des Frameworks werden in einem Web-Worker ausgeführt), und der JSON-basierte virtuelle Dom bietet viele Vorteile (sauberer und einfacher Code, Leistung usw.). Hier ist der Link:

Reden wir über Code!

Wenn Sie ein Klassenkonfigurationssystem manuell einrichten möchten, hilft die ApplyClassConfig () -Logik: https://github.com/neomjs/neo/blob/dev/src/Neo.mjs#L48

Die wichtigsten Änderungen gegenüber meinem vorherigen Artikel sind in autoGenerateGetSet () enthalten:

https://github.com/neomjs/neo/blob/dev/src/Neo.mjs#L545

Randnotiz: Neo speichert jetzt die Getter / Setter in einem Cache, sodass die Logik keinen Overhead mehr erzeugt, wenn mehrere Klassen dieselben Konfigurationsnamen haben.

core.Base verwendet jetzt ein Konfigurationssymbolobjekt, in dem die neuen Werte zum anfänglichen Festlegen der Konfigurationswerte sowie für Massenkonfigurationsaktualisierungen mit set () gespeichert werden:

https://github.com/neomjs/neo/blob/dev/src/core/Base.mjs#L266

Sie möchten sich auch processConfigs () ansehen, das auch von initConfig () => constructor () verwendet wird.

Der Trick dabei ist, dass processConfigs () nur den ersten Schlüssel des neuen Konfigurationsobjekts (im Instanzsymbol gespeichert) verwendet und sich dann rekursiv aufruft. Der Grund dafür ist, dass beim Parsen eines neuen Schlüssels die beforeSet- oder afterSet-Methoden dieses Schlüssels auf andere Konfigurationen zugreifen können, für die Sie die neuen Werte sofort abrufen möchten, wodurch auch diese Konfigurationen entfernt werden können ) aus dem neuen Konfigurationssymbol.

Feedback erwünscht!

Ich weiß, dass dies eine ziemlich fortgeschrittene JS-Codierung ist, aber ich hoffe, Sie können die Konzepte erhalten. Fühlen Sie sich frei, die Testklasse zu ändern / zu erweitern und Fragen zu stellen!

Viele Grüße und viel Spaß beim Codieren,
Tobias

Suggested posts

Das D-Wort und das L-Wort im UI-Design. Sprachangelegenheiten. Seien Sie nicht rassistisch.

Das D-Wort und das L-Wort im UI-Design. Sprachangelegenheiten. Seien Sie nicht rassistisch.

Unsere Sprache ist ein mächtiges Werkzeug, das unsere Gedanken, Einstellungen und Handlungen formen kann. Selbst scheinbar harmlose Begriffe können schädliche Vorurteile und Stereotypen aufrechterhalten.

Die 14 besten kostenlosen Framer-Overrides des Jahres 2023

Die 14 besten kostenlosen Framer-Overrides des Jahres 2023

Schalten Sie neue Superkräfte mit mühelosem Kopieren und Einfügen von Code-Überschreibungen für Framer frei – keine Programmierung erforderlich. Lassen Sie uns heute über eine Funktion in Framer sprechen, die wohl eine der leistungsstärksten ist, aber von den meisten Designern auch am wenigsten verstanden wird – Überschreibungen.

Related posts

Pronomen sind super gruselig

Es fällt mir plötzlich auf, wie so oft. Es ist wieder die Mitte. <Nein, nicht die im Pazifik, du Schlappschwanz, die auf dem Jahrmarkt> Jede Schlagzeile laut…..

Die Workplace-Revolution: Top-Experten diskutieren über Hybrid- und Remote-Arbeit

Die Workplace-Revolution: Top-Experten diskutieren über Hybrid- und Remote-Arbeit

In der sich schnell entwickelnden Geschäftslandschaft von heute hat das Konzept der Hybrid- und Remote-Arbeit eine beispiellose Dynamik erlangt. Während sich Unternehmen weiterhin an die sich verändernden Bedürfnisse und Erwartungen ihrer Mitarbeiter anpassen, sind Experten aus verschiedenen Bereichen zusammengekommen, um die Vorteile, Herausforderungen und die Zukunft dieser transformativen Arbeitsweise zu diskutieren.

Dieses Bedrohungsarchiv: Band 7 Black Basta

Dieses Bedrohungsarchiv: Band 7 Black Basta

In der heutigen vernetzten Welt ist die Bedrohung durch Cyberangriffe größer denn je. Cyberkriminelle und nationalstaatliche Akteure versuchen ständig, Schwachstellen auszunutzen und wertvolle Daten zu stehlen, was ein erhebliches Risiko für Unternehmen jeder Größe darstellt.

Schaffung einer sicheren Arbeitsumgebung

Schaffung einer sicheren Arbeitsumgebung

„Er wird mich beschützen, wenn ich in Gefahr bin. Er wird mich in seinem Zelt verstecken.