Hier erfahren wir mehr über die Front-End -Komponentenbildung , den wichtigsten Teil der Front-End-Architektur. Wenn es um Front-End-Architektur geht, gibt es eigentlich zwei heiße Themen in der Front-End-Architektur: eines ist die Komponentenbildung und das andere das Architekturmodell. Das Konzept der Komponentenbildung begann mit der Untersuchung der Erweiterung von HTML-Tags und entwickelte sich schließlich zu einem Front-End-Architektursystem. Und seine wichtigste Funktion besteht darin , die Wiederverwendbarkeit des Front-End-Codes zu verbessern . Das Architekturmuster ist das Entwurfsmuster, mit dem jeder besonders vertraut ist, wie z. B. Daher kann man sagen, dass die Komponentenbildung in der Front-End-Architektur höchste Priorität hat. In der tatsächlichen Entwicklung ist die Komponentenbildung oft wichtiger als der Architekturmodus. Denn die Komponentenbildung bestimmt direkt die Code-Wiederverwendungsrate eines Front-End-Teams, und ein gutes Komponentenbildungssystem kann einem Front-End-Team dabei helfen, seine Code-Wiederverwendungsrate zu verbessern und so die Gesamteffizienz des Teams zu steigern . Durch die Erhöhung der Wiederverwendungsrate verringert sich die Menge an Code, die jeder wiederholt schreibt, die Effizienz steigt und die psychische und mentale Belastung der Teammitglieder wird deutlich geringer.
Hier beginnen wir mit dem Verständnis der Komponentisierung und der Grundbestandteile einer Komponente. Grundlegende Konzepte von KomponentenKomponenten werden in Module und Objekte unterteilt. Komponenten sind eng mit der Benutzeroberfläche verknüpft, daher können wir uns Komponenten in gewissem Sinne als spezielle Module oder spezielle Objekte vorstellen.
Die Besonderheit der Komponentisierung besteht darin, dass sie über eine Baumstruktur kombiniert werden kann und über ein gewisses Maß an Vorlagenkonfigurationsmöglichkeiten verfügt. Dies ist das Grundkonzept unserer Komponente. Der Unterschied zwischen Objekten und KomponentenSchauen wir uns zunächst das Objekt an, das aus drei Hauptelementen besteht:
Ein normales Objekt in JavaScript kann durch seine Eigenschaften, Methoden und Vererbungsbeziehungen beschrieben werden. Die Vererbung verwendet hier die Prototypenvererbung in JavaScript. Die hier erwähnten „gewöhnlichen Objekte“ umfassen keine komplexen Funktionsobjekte oder andere spezielle Objekte. In JavaScript sind Eigenschaften und Methoden integriert. Im Vergleich zu Komponenten enthalten Komponenten umfangreichere semantische Elemente. Die Elemente in Komponenten sind:
Als nächstes folgt die Komponenten haben auch Jede Komponente hat Es gab früher einige beliebte Drag-and-Drop-Systeme, bei denen wir einige vorgefertigte UI-Komponenten auf die Seite ziehen konnten, um unsere Systemschnittstelle zu erstellen. Später stellte ich jedoch fest, dass neben der Drag-and-Drop-Funktion in bestimmten Bereichen auch einige funktionale Anforderungen hinsichtlich der automatischen Sortierung und Verschachtelung von Komponenten erforderlich sind. Derzeit funktioniert es nicht, wenn zwischen den Komponenten keine Baumstruktur vorhanden ist. Schließlich fügen Komponenten viele semantisch verwandte Konzepte basierend auf Objekten hinzu, was Komponenten zu einem Konzept macht, das sich sehr gut für die Beschreibung der Benutzeroberfläche eignet. KomponenteLassen Sie uns ein Diagramm verwenden, um die Komponenten besser zu verstehen. Die direkteste Quelle für Änderungen an Komponenten sind Benutzereingaben und -operationen. Wenn ein Benutzer beispielsweise eine Option in unserer Auswahlfeldkomponente auswählt, ändern sich unser Die Situationen auf der rechten Seite der Abbildung stellen die Beziehungen zwischen Komponentenentwicklern und Komponenten dar. Eine davon besteht darin, dass der Entwickler den
Zusätzlich zur Verwendung von
Dann gibt es Hier können wir also das Konzept festlegen, dass Entwickler, die Komponenten verwenden, Durch dieses Bild können wir die Funktionen jedes Elements der Komponente und die Richtung ihres Informationsflusses klar verstehen. Attribut Unter allen Elementen einer Komponente sind Unser Verständnis des englischen Wortes „ Oben geht es um den Unterschied zwischen diesen beiden Wörtern im Englischen. In tatsächlichen Anwendungsszenarien gibt es jedoch auch Unterschiede. Da es sich bei Attribut vs. EigenschaftHier verwenden wir einige Beispiele, um den Unterschied zwischen Attribut und Eigenschaft zu verdeutlichen. Wir können uns Szenarien ansehen, in denen sie in HTML nicht gleichwertig sind. Attribut:<my-component Attribut="v" /> <Skript> meineKomponente.getAttribute('a') myComponent.setAttribute('a', Wert) </Skript>
Eigentum:meineKomponente.a = "Wert";
Klassenattribut<div Klasse="Klasse1 Klasse2"></div> <Skript> var div = document.getElementByTagName('div'); div.className // Ausgabe ist Klasse1 Klasse2 </Skript> In der Anfangszeit von JavaScript war „Class“ ein Schlüsselwort. Daher durfte das frühe Schlüsselwort „class“ nicht als Attributname verwendet werden. Dies wurde nun jedoch geändert, Schlüsselwörter können auch als Attributnamen verwendet werden. Um diese Verwendung des Schlüsselwortes zu ermöglichen, wurde ein Kompromissdesign in HTML erstellt. In HTML heißt das Attribut weiterhin Wenn wir beispielsweise in React className schreiben, wird die Klasse automatisch festgelegt. Style-Eigenschaft Jetzt gibt es in der JavaScript-Sprache keine Inkonsistenz zwischen Klasse und Klassenname. Wir können Manchmal ist ein Attribut eine Zeichenfolge, während eine Eigenschaft ein Objekt ist, das die Zeichenfolge in eine semantische Zeichenfolge umwandelt. Das typischste ist <div Klasse="Klasse1 Klasse2" Stil="Farbe:blau"></div> <Skript> var div = document.getElementByTagName('div'); div.style // Dies ist ein Objekt</script> Das Style-Attribut in HTML ist eine Zeichenfolge, und wir können getAttribute und setAttribute verwenden, um dieses Attribut abzurufen und festzulegen. Wenn wir jedoch die Style-Eigenschaft verwenden, erhalten wir eine Schlüssel- und Wertestruktur. Href-Attribut In HTML sind die Bedeutungen des Der Wert unseres href ist beispielsweise „//m.taobao.com“. Zu diesem Zeitpunkt basiert das vorherige http- oder https-Protokoll auf der aktuellen Seite, sodass der href hier erneut kompiliert werden muss, um auf das Protokoll der aktuellen Seite zu reagieren. Alle, die die Konvertierung von http auf https durchgeführt haben, sollten wissen, dass wir, wenn wir unsere Website auf das https-Protokoll umstellen, alle fest codierten http- oder https-URLs so ändern müssen, dass sie Was auch immer wir in href schreiben, wird herauskommen, das ist das Attribut. Wenn das Problem gelöst wird, geht es in unser Eigentum über. <a href="//m.taobao.com" rel="externes Nofollow" ></a> <Skript> var a = document.getElementByTagName('a'); // Das Ergebnis ist „http://m.taobao.com“, diese URL ist das Ergebnis der Auflösung // also ist dies Eigenschaft ein.href; // Und das ist „//m.taobao.com“, was genau dasselbe ist wie im HTML-Code// Das ist also das Attribut a.getAttribute('href'); </Skript> Wir können im obigen Code auch sehen, dass wir gleichzeitig auf Eigenschaften und Attribute zugreifen können. Obwohl sie sich semantisch sehr ähneln, handelt es sich nicht um dasselbe. Aber wenn wir eines von beiden ändern, ändert sich auch das andere . Dies ist ein Phänomen, dem wir Aufmerksamkeit schenken müssen. Eingabe und WertDies ist das magischste Paar und auch der Wert ist ein besonderer Tiefgang. Viele von uns denken, dass die Werte in Eigenschaften und Attributen völlig gleichwertig sind. Eigentlich nicht. Der Eingabewert in diesem Attribut entspricht dem Standardwert eines Wertes. Unabhängig davon, ob der Benutzer einen Wert in die Eingabe eingibt oder der Entwickler JavaScript verwendet, um der Eingabe einen Wert zuzuweisen, ändert sich das Attribut der Eingabe nicht. Beim Anzeigen der Eingabe wird die Eigenschaft zuerst angezeigt, sodass der Wert im Attribut einem Standardwert entspricht. Dies ist eine sehr bekannte Falle. Wenn Sie JQuery in den Anfangstagen verwendet haben, werden Sie denken, dass prop und attr dasselbe sind, aber hier tappen Sie in die Falle. Deshalb wurde für die JQuery-Bibliothek später eine Methode namens „val“ entwickelt, sodass wir nicht über den Wert des Attributs oder der Eigenschaft nachdenken müssen, sondern direkt den bereitgestellten Wert verwenden können, um den Wert abzurufen.
So entwerfen Sie Komponentenzustände Hier analysieren wir die Unterschiede zwischen Hier hat Lehrer Winer für uns eine Tabelle zusammengestellt, die in vier Szenarien unterteilt ist:
Lassen Sie uns also nacheinander darüber sprechen:
❌ Es kann nicht durch eine statische deklarative Sprache wie Markup festgelegt werden
❓ Benutzereingaben ändern es nicht unbedingt, genau wie Property
❌ Der Status wird innerhalb einer Komponente geändert, nicht von außerhalb. Wenn wir eine Komponente so entwerfen möchten, dass ihr Zustand von außen geändert werden kann, gerät der Zustand innerhalb unserer Komponente außer Kontrolle. Da wir nicht wissen, wann der Status unserer Komponente außerhalb der Komponente geändert wird, kann die Konsistenz unseres Status nicht garantiert werden.
✅ Die Konfiguration ist eine einmalige Sache in der Komponente, sie wird nur ausgelöst, wenn unsere Komponente erstellt wird. Es ist also unveränderlich. Auch wegen der Unveränderlichkeit belassen wir die Konfiguration normalerweise auf der globalen Ebene. Normalerweise verfügt jede Seite über eine Konfiguration, die dann innerhalb der Seite verwendet wird. Komponentenlebenszyklus Wenn es um Lebenszyklen geht, fallen einem vor allem zwei ein: Wie sieht also der Lebenszyklus zwischen diesen beiden Anfängen und Enden aus? Wir müssen darüber nachdenken, was zwischen der Erstellung und der Zerstörung einer Komponente passiert. Eine sehr wichtige Sache bei einer Komponente ist, ob sie nach ihrer Erstellung angezeigt wird. Dabei geht es um Wenn eine Montage erfolgt, muss auch eine Demontage erfolgen, sodass Nach Wann ändert sich also der Zustand der Komponente? Hier haben wir zwei Situationen:
Wenn unser Benutzer beispielsweise auf eine Schaltfläche oder Registerkarte klickt, wird die Statusänderung dieser Komponente ausgelöst. Gleichzeitig wird auch ein Komponentenlebenszyklus generiert, und dieser Lebenszyklus besteht aus Render-Rendering oder Update-Aktualisierung. Zusammengerechnet ergeben alle diese Lebenszyklen den vollständigen Lebenszyklus unserer Komponente. Die sogenannten KinderLassen Sie uns abschließend über das Konzept „Kinder“ sprechen. Untergeordnete Elemente sind das wichtigste Komponentenfeature zum Erstellen eines Komponentenbaums. Tatsächlich werden zwei Arten untergeordneter Elemente verwendet:
Beim Entwerfen der untergeordneten Elemente unseres Komponentenbaums müssen wir diese beiden unterschiedlichen Szenarien berücksichtigen. Beispielsweise gibt es in React keine untergeordneten Elemente vom Vorlagentyp, aber seine untergeordneten Elemente können Funktionen übergeben, und dann kann diese Funktion ein untergeordnetes Element zurückgeben. Zu diesem Zeitpunkt fungiert es als Vorlage für untergeordnete Elemente . Wenn wir in Vue also endlose Bildlauflisten erstellen, gelten für die untergeordneten Vorlagen von Vue bestimmte Anforderungen. AbschlussHier haben wir das Konzept und Wissen der gesamten Komponente kennengelernt. Im nächsten Artikel werden wir ein Komponentensystem entwerfen und bauen und seine verschiedenen praktischen Kenntnisse kennenlernen. Wir werden auch einige typische Komponenten und typische Funktionen verwenden, um jedem ein gewisses Verständnis für die Implementierung der Komponenten zu vermitteln. Hier betreuen wir uns gegenseitig, ermutigen uns gegenseitig und arbeiten gemeinsam hart daran, den Weg des Lernens im Leben einzuschlagen und zuzulassen, dass das Lernen unser Leben verändert! Der Weg zum Lernen ist langweilig und einsam, aber ich hoffe, dass dies uns mehr Kameradschaft und Ermutigung bringen kann. Lasst uns gemeinsam anfeuern! (๑ •̀ㅂ•́)و Dies ist das Ende dieses Artikels über die Grundkenntnisse der Front-End-Komponentenbildung. Weitere relevante Inhalte zur Front-End-Komponentenbildung, zu Front-End-Grundkenntnissen und Front-End-Wissen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: So verwenden Sie Nginx, um domänenübergreifende Front-End-Probleme zu lösen
Vorwort In der MySQL-Datenbank verwenden wir manc...
So richten Sie einen MySQL-Kurzlink ein 1. Überpr...
Beschreibung und Einführung Docker Inspect ist ei...
In diesem Artikel erkläre ich ausführlich, wie ma...
Inhaltsverzeichnis Vorwort JS Magische Zahl Numme...
In diesem Artikel wird der spezifische JavaScript...
In diesem Artikel wird der spezifische Code der V...
Als ich kürzlich CSS studierte, stellte ich fest,...
Logo-Optimierung: 1. Das Logobild sollte so klein...
In diesem Artikel wird der spezifische Code zur I...
Inhaltsverzeichnis 1. Einleitung 2. Vorteile 3. N...
Die Testumgebung dieses Experiments: Windows 10+c...
MySQL-Fehler: Parameterindex außerhalb des gültig...
Einführung Derzeit ist k8s sehr beliebt und ich h...
Die Rahmen- und Regelattribute des Tabellentags k...