1. VerstehenDokumentation: https://v3.cn.vuejs.org/guide/render-function.html#dom-%E6%A0%91 Was genau gibt h() zurück? Eigentlich kein echtes DOM-Element. Ein genauerer Name dafür wäre möglicherweise „createNodeDescription“, da die darin enthaltenen Informationen Vue mitteilen, welche Art von Knoten auf der Seite gerendert werden muss, einschließlich Beschreibungsinformationen für seine untergeordneten Knoten. Wir bezeichnen solche Knoten als „virtuelle Knoten“, die oft als VNode abgekürzt werden. „Virtual DOM“ ist die Bezeichnung für den gesamten VNode-Baum, der vom Vue-Komponentenbaum erstellt wird. 2. VerwendungDokumentation: https://v3.cn.vuejs.org/guide/render-function.html#h-%E5%8F%82%E6%95%B0 1. h()-ParameterDie Funktion h() ist ein Dienstprogramm zum Erstellen eines VNode. Vielleicht wäre der treffendere Name createVNode(), aufgrund der häufigen Verwendung und Kürze wird es jedoch als h() bezeichnet. Es akzeptiert drei Parameter: // @returns {VNode} H( // {String | Objekt | Funktion}-Tag // Ein HTML-Tag-Name, eine Komponente, eine asynchrone Komponente oder // eine funktionale Komponente. // // Erforderlich. 'div', // {Object} Eigenschaften // Objekte, die Attributen, Eigenschaften und Ereignissen entsprechen. // Dies wird in der Vorlage verwendet. // // Optional (Es wird empfohlen, es während der Entwicklung zu übergeben. Wenn es nicht übergeben werden muss, übergeben Sie null.) {}, // {String | Array | Object} untergeordnete Elemente // Untergeordnete VNodes, erstellt mit `h()`, // Oder verwenden Sie eine Zeichenfolge, um einen „Text-VNode“ oder // ein Objekt mit Slots zu erhalten. // // Optional. [ 'Zuerst kommt ein Text.', h('h1', 'Eine Überschrift'), h(MeineKomponente, { einigeProp: "foobar" }) ] ) 2. Einfach zu bedienen3. Implementieren Sie einen Gegenfall<Skript> /* Um den Stil festzulegen, müssen Sie ihn hier importieren. Wenn Sie das Stil-Tag verwenden, können Sie nicht bereichsbezogen schreiben, was dem Festlegen lokaler Stile nicht förderlich ist und daher nicht empfohlen wird*/ importiere "./style.css" importiere { h, ref } von "vue"; Standard exportieren { // So schreiben Sie Daten // data() { // zurückkehren { // Zähler: 0 // } // }, aufstellen() { konstanter Zähler = ref(0) return { Zähler } }, /** * Wenn Sie Setup verwenden, können Sie dies auch unten verwenden. Der Import von Render hat diese Grenze, daher sollte der folgende Wert dies verwenden */ rendern() { return h("div", null, [ h("h1", null, `Aktueller Zähler: ${this.counter}`), h("Schaltfläche", { bei Klick: () => this.counter++, Klasse: "Schaltfläche" }, "1 hinzufügen"), h("Schaltfläche", { bei Klick: () => this.counter--, Klasse: "Schaltfläche" }, "minus 1") ]) } } </Skript> Ändern in reines Setup-Schreiben: <Skript> /* Um den Stil festzulegen, müssen Sie ihn hier importieren. Wenn Sie das Stil-Tag verwenden, können Sie nicht bereichsbezogen schreiben, was dem Festlegen lokaler Stile nicht förderlich ist und daher nicht empfohlen wird*/ importiere "./style.css" importiere { h, ref } von "vue"; Standard exportieren { // So schreiben Sie Daten // data() { // zurückkehren { // Zähler: 0 // } // }, aufstellen() { konstanter Zähler = ref(0) zurückgeben () => { return h("div", null, [ h("h1", null, `Aktueller Zähler: ${counter.value}`), h("Schaltfläche", { bei Klick: () => Zähler.Wert++, Klasse: "Schaltfläche" }, "1 hinzufügen"), h("Schaltfläche", { beimKlicken: () => Zähler.Wert--, Klasse: "Schaltfläche" }, "minus 1") ]) } } } </Skript> 4. Verwendung von Funktionsbausteinen und Slots1) Übergeordnete Komponente <Skript> importiere { h, ref } von "vue"; Test aus "./components/Test.vue" importieren Standard exportieren { aufstellen() { zurückkehren {} }, rendern() { return h(Test, null, { // Standard entspricht einer Funktion, Standard ist der Standardsteckplatz Standard: props => h("span", null, "Vom übergeordneten Element an die Komponente übergebener Inhalt:" + props.name) }) } } </Skript> 2) Unterkomponenten <Skript> importiere { h } von "vue"; Standard exportieren { /** * Erhalte den vom Ehemann übermittelten Inhalt */ rendern() { return h("div", null, [ h("div", null, "Ich bin eine untergeordnete Komponente"), /** * Hier können wir beurteilen, ob andere etwas übergeben haben. * Sie können auch null schreiben, um nichts anzuzeigen. * Sie können auch einen Parameter übergeben, indem Sie die Funktion zum Übergeben des Parameters verwenden. */ this.$slots.default ? this.$slots.default({ name: "哈哈哈哈" }) : h("div", null, "Ich bin der Standardwert der untergeordneten Komponente") ]) } } </Skript> Hinweis: Wenn Sie im Projekt Code wie oben schreiben, ist das zu mühsam, daher müssen Sie derzeit JSX verwenden. 3. Einsatz von JSX1. Verständnis von JSXNormalerweise konvertieren wir jsx über Babel (in React geschriebenes jsx wird über Babel konvertiert); Für Vue müssen wir nur das entsprechende Plug-In in Babel konfigurieren; Dokumentation: https://v3.cn.vuejs.org/guide/render-function.html#jsx 2. Laden Sie das Babel-Plugin herunter, um Vue zu unterstützen (jetzt scheint das Gerüst es direkt zu unterstützen)npm installiere @vue/babel-plugin-jsx -D 3. Konfigurieren Sie Babel1) Erstellen Sie .babel.config.js im Stammverzeichnis 2) Fügen Sie den folgenden Code zu .babel.config.js hinzu modul.exporte = { Voreinstellungen: [ „@/vue/cli-plugin-babel/Vorgabe“ ], Plugins: [ „@vue/babel-plugin-jsx“ ] } 4. Einfach zu bedienen<Skript> importiere { ref } von 'vue' Standard exportieren { aufstellen() { lass Zähler = ref(0) return { Zähler } }, rendern() { zurückkehren ( <div> <div>Verwendung von JSX</div> <h2>Aktuelle Nummer: {this.counter}</h2> </div> ) } } </Skript> 5. Gegenargument<Skript> importiere { ref } von '@vue/reactivity' Standard exportieren { aufstellen() { lass Zähler = ref(0) Funktion add() { Zählerwert++ } Funktion Dekrement() { Zählerwert-- } return { Zähler, Addition, Dekrementierung} }, rendern() { zurückkehren ( <div> <div>Verwendung von JSX</div> <h2>Aktuelle Nummer: {this.counter}</h2> <button onClick={this.add}>1 hinzufügen</button> <button onClick={this.decrement} >1 verringern</button> </div> ) } } </Skript> 6. Verwendung von Komponenten und Steckplätzen1) Übergeordnete Komponente <Skript> importiere { ref } von '@vue/reactivity' Test aus "./components/Test.vue" importieren Standard exportieren { aufstellen() { lass Zähler = ref(0) Funktion add() { Zählerwert++ } Funktion Dekrement() { Zählerwert-- } return { Zähler, Addition, Dekrementierung} }, rendern() { zurückkehren ( <div> <div>Verwendung von JSX</div> {/* Wenn dieser Block Variablen oder Methoden im Setup verwendet, fügen Sie dies hinzu */} <h2>Aktuelle Nummer: {this.counter}</h2> <button onClick={this.add}>1 hinzufügen</button> <button onClick={this.decrement} >1 verringern</button> <hr /> <Prüfung> {/* Schreibe den übergebenen Inhalt hierhin, d.h. übergebe ihn in einen Slot*/} {{ default: props => <p>Ich werde vom Elternteil an das Kind weitergegeben</p> }} </Test> </div> ) } } </Skript> 2) Unterkomponenten <Skript> Standard exportieren { /** * Erhalte den vom Ehemann übermittelten Inhalt */ rendern() { zurückkehren ( <div> <p>Ich bin eine Komponente</p> {/* Dieses Teil darf nicht getragen werden, und Sie müssen einen Standardwert anzeigen. In diesem Fall müssen Sie den ternären Operator */} verwenden. {this.$slots.default()} </div> ) } } </Skript> Hinweis: Wenn Sie die h-Funktion zum Schreiben von Komponenten verwenden möchten, lesen Sie die Dokumentation sorgfältig durch. Die obige Erklärung ist nur für Anfänger gedacht. Dies ist das Ende dieses Artikels zur detaillierten Verwendung der Vue h-Funktion. Weitere relevante Inhalte zur Vue h-Funktion finden Sie in den vorherigen Artikeln von 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:
|
<<: Spezifische Verwendung von Docker Anonymous Mount und Named Mount
>>: Lösen Sie das Problem der automatischen HTML-Formatierung nach dem Speichern in vscode
Führen Sie die Anweisung „create table“ in der Da...
Um eine hohe Verfügbarkeit des Netzwerks zu gewäh...
Vorwort Dieser Artikel beschreibt, wie ich Docker...
Unter Linux ist alles eine Datei, daher besteht d...
Inhaltsverzeichnis Datenverarbeitungslösung auf M...
Im Bereich Design gibt es jedes Jahr unterschiedl...
Der Grund ist einfach: In HTML-Dokumenten entsprec...
Inhaltsverzeichnis 1. Ziehen Sie das Centos-Image...
Installation und Konfiguration Die offizielle Web...
Zunächst muss Ihr Container laufen Sie können die...
Die Konfiguration ist sehr einfach, aber ich muss...
In diesem Artikelbeispiel wird der spezifische Co...
einführen Überwacht die Integrität von HTTP-Serve...
Seitenbeschreibung: Hauptseite: Name —> shish...
Frontend css3.filter kann nicht nur den Graueffek...