


Grundlegende Verwendung der Renderfunktion in Vue (ausführliches Tutorial)
In diesem Artikel wird hauptsächlich die Verwendung der Renderfunktion in Vue vorgestellt. Jetzt teile ich ihn mit Ihnen und gebe Ihnen eine Referenz.
Renderfunktion
vue erstellt Ihr HTML anhand einer Vorlage. In besonderen Fällen kann dieses fest codierte Modell die Anforderungen jedoch nicht erfüllen und es müssen JS-Programmierfunktionen erforderlich sein. An diesem Punkt müssen Sie Render verwenden, um HTML zu erstellen.
Wann ist es angebracht, die Renderfunktion zu verwenden?
Beim gleichzeitigen Kapseln einer Reihe gemeinsamer Schaltflächenkomponenten verfügt die Schaltfläche über vier Stile (Standard). Erfolgsfehler). Zunächst fällt Ihnen vielleicht die folgende Implementierung ein:
<p v-if="type === 'success'">success</p> <p v-else-if="type === 'error'">error</p> <p v-else-if="type === 'warm'">warm</p> <p v-else>default</p>
, die völlig in Ordnung ist, wenn nur wenige Schaltflächenstile vorhanden sind. Stellen Sie sich jedoch vor, dass der Text in der Schaltfläche dies tun wird, wenn mehr als zehn Schaltflächenstile erforderlich sind entsprechend der tatsächlichen Situation bestimmt werden (z. B. kann der Text in der Erfolgsschaltfläche „OK“, „GUT“ usw. sein). Dann scheint die hartcodierte Vorlagenmethode sehr schwach zu sein. In solchen Situationen kann man sagen, dass die Verwendung der Renderfunktion die beste Wahl ist.
Schreiben Sie die Schaltflächenkomponente entsprechend der tatsächlichen Situation neu
Zunächst entspricht der von der Renderfunktion generierte Inhalt dem Inhalt der Vorlage Wenn Sie die Renderfunktion verwenden, müssen Sie sie zunächst in die .vue-Datei einfügen. Entfernen Sie das Vorlagen-Tag. Es bleibt nur die logische Ebene übrig.
export default { render(h) { return h('p',{ 'class': { btn: true, success: this.type === 'success', error: this.type === 'error', warm: this.type === 'warm', default: this.type === 'default' }, domProps: { innerHTML: this.$slots.default[0].text }, on: { click: this.clickHandle } }) }, methods: { clickHandle() { // dosomething } }, props: { type: { type: String, default: 'default' }, text: { type: String, default: 'default' } } };
Nach dem komponentenbasierten Denken sind Dinge, die abstrahiert werden können, niemals fest in der Logik codiert. Die ClickHandle-Funktion hier kann je nach Schaltflächentyp unterschiedliche Logik auslösen, daher werde ich nicht auf Details eingehen.
Dann rufen Sie
<btn v-for="(btn, index) in testData" :type="btn.type" :text="btn.text" :key="index">{{btn.text}} </btn>
in der übergeordneten Komponente mit jsx auf.
Ja, merken Sie sich die gleiche Art der Verwendung jedes Parameters und übergeben Sie die Parameter der Reihe nach Es ist wirklich zu viel Mühe. Dann können Sie jsx tatsächlich verwenden, um diesen langwierigen Prozess zu optimieren.
return ( <p class={{ btn: true, success: this.type === 'success', error: this.type === 'error', warm: this.type === 'warm', default: this.type === 'default' }} onClick={this.clickHandle}> {this.$slots.default[0].text} </p> )
Beispiel 2:
Wenn Sie auf das Schreiben ähnlicher Komponenten stoßen, müssen Sie der Einfachheit halber viel langen Code schreiben (Faulheit bringt Menschen voran). Daher sollten wir eine geeignetere Methode finden, um diesen Effekt zu erzielen.
<body> <p id="app"> <mycomment :level="2"> 这是h2元素 </mycomment> </p> </body> <script type="text/x-template" id="is"> <p> <h1 v-if="level === 1"> <slot></slot> </h1> <h2 v-if="level === 2"> <slot></slot> </h2> <h3 v-if="level === 3"> <slot></slot> </h3> <h4 v-if="level === 4"> <slot></slot> </h4> <h5 v-if="level === 5"> <slot></slot> </h5> <h6 v-if="level === 6"> <slot></slot> </h6> </p> </script> <script> Vue.component('mycomment',{ template:'#is', props:{ level:{ type:Number, required:true, } } }) var app =new Vue({ el:'#app', }) </script>
Zu diesem Zeitpunkt löst die Render-Funktion dieses Problem sehr gut. Sie hat ein Grundgerüst
<body> <p id="app"> <render-teample :level="4"> render function </render-teample> </p> </body> <script> Vue.component('render-teample',{ render:function(createElement){ return createElement( 'h'+this.level, this.$slots.default ) }, props: { level: { type: Number, required: true } } var app=new Vue({ el:"#app", }); </script>
Fügen Sie dann Ihrer Komponente hinzu, was Sie möchten. Der Stil erfordert, dass Ereignisse Fleisch und Blut werden
<body> <p id="app"> <render-teample :level="4" > <p class="jah" slot="myslot">render function</p> </render-teample> </p> </body> <script> Vue.component('render-teample',{ render:function(createElement){ return createElement( 'h'+this.level, { 'class':{ show:true, hide:false, }, style:{ width:'200px', height:'400px', background:'red', }, attrs:{ name:'h-ex', id:'h-id' }, props:{ myprops:true, }, on: { click: function(event){ alert(this.num) } }, nativeOn:{ click:function(event) { alert(1111) } } }, [ this.$slots.myslot, createElement('p',{ domProps:{ innerHTML:'holle render' } }) ] ) }, props: { level: { type: Number, required: true } } }); var app=new Vue({ el:"#app", data:{ num:110 } }); </script>
Hinweis: VNodes in der Einschränkungskomponente müssen eindeutig sein.
Es ist sehr mühsam, alle Elemente direkt unter einem createElement() zu schreiben und ist der Wartung nicht förderlich.
Normalerweise kann
var com1= createElement('p','item1');var com2= createElement('p','item1');
return createElement('p',[com1,com2]) verwenden
In dieser Situation ist return createElement('p', [com1, com1])
Das Obige habe ich für alle zusammengestellt und hoffe, dass es in Zukunft für alle hilfreich sein wird.
Verwandte Artikel:
So implementieren Sie die automatische Recyclingverbindung für MySQL-Transaktionen in Node.js
So löschen Sie ein bestimmtes Objekt in einem JS-Array-Element
Führt im Detail die Wissenspunkte zu Versprechen in js ein
Das obige ist der detaillierte Inhalt vonGrundlegende Verwendung der Renderfunktion in Vue (ausführliches Tutorial). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Durch die Verwendung von ECharts in Vue können Sie Ihrer Anwendung ganz einfach Datenvisualisierungsfunktionen hinzufügen. Zu den spezifischen Schritten gehören: Installieren von ECharts- und Vue ECharts-Paketen, Einführung von ECharts, Erstellen von Diagrammkomponenten, Konfigurieren von Optionen, Verwenden von Diagrammkomponenten, Anpassen von Diagrammen an Vue-Daten, Hinzufügen interaktiver Funktionen und Verwenden erweiterter Verwendungsmöglichkeiten.

Frage: Welche Rolle spielt der Exportstandard in Vue? Detaillierte Beschreibung: Exportstandard definiert den Standardexport der Komponente. Beim Importieren werden Komponenten automatisch importiert. Vereinfachen Sie den Importvorgang, verbessern Sie die Übersichtlichkeit und vermeiden Sie Konflikte. Wird häufig zum Exportieren einzelner Komponenten verwendet, wobei sowohl benannte als auch Standardexporte verwendet werden und globale Komponenten registriert werden.

Die Kartenfunktion von Vue.js ist eine integrierte Funktion höherer Ordnung, die ein neues Array erstellt, wobei jedes Element das transformierte Ergebnis jedes Elements im ursprünglichen Array ist. Die Syntax lautet map(callbackFn), wobei callbackFn jedes Element im Array als erstes Argument empfängt, optional den Index als zweites Argument, und einen Wert zurückgibt. Die Kartenfunktion ändert das ursprüngliche Array nicht.

In Vue.js ist event ein natives JavaScript-Ereignis, das vom Browser ausgelöst wird, während $event ein Vue-spezifisches abstraktes Ereignisobjekt ist, das in Vue-Komponenten verwendet wird. Im Allgemeinen ist die Verwendung von $event bequemer, da es so formatiert und erweitert ist, dass es die Datenbindung unterstützt. Verwenden Sie „event“, wenn Sie auf bestimmte Funktionen des nativen Ereignisobjekts zugreifen müssen.

onMounted ist ein Lebenszyklus-Hook für die Komponentenmontage in Vue. Seine Funktion besteht darin, Initialisierungsvorgänge durchzuführen, nachdem die Komponente im DOM bereitgestellt wurde, z. B. das Abrufen von Referenzen auf DOM-Elemente, das Festlegen von Daten, das Senden von HTTP-Anforderungen, das Registrieren von Ereignis-Listenern usw. Es wird nur einmal aufgerufen, wenn die Komponente gemountet wird. Wenn Sie Vorgänge ausführen müssen, nachdem die Komponente aktualisiert wurde oder bevor sie zerstört wurde, können Sie andere Lebenszyklus-Hooks verwenden.

Es gibt zwei Möglichkeiten, Module in Vue.js zu exportieren: Export und Export Default. export wird zum Exportieren benannter Entitäten verwendet und erfordert die Verwendung von geschweiften Klammern; export default wird zum Exportieren von Standardentitäten verwendet und erfordert keine geschweiften Klammern. Beim Importieren müssen per Export exportierte Entitäten ihre Namen verwenden, während per Exportstandard exportierte Entitäten implizit verwendet werden können. Es wird empfohlen, die Export-Standardeinstellung für Module zu verwenden, die mehrmals importiert werden müssen, und die Export-Standardeinstellung für Module, die nur einmal exportiert werden müssen.

Vue-Hooks sind Rückruffunktionen, die Aktionen bei bestimmten Ereignissen oder Lebenszyklusphasen ausführen. Dazu gehören Lebenszyklus-Hooks (wie beforeCreate, mount, beforeDestroy), Event-Handling-Hooks (wie click, input, keydown) und benutzerdefinierte Hooks. Hooks verbessern die Komponentenkontrolle, reagieren auf Komponentenlebenszyklen, verarbeiten Benutzerinteraktionen und verbessern die Wiederverwendbarkeit von Komponenten. Um Hooks zu verwenden, definieren Sie einfach die Hook-Funktion, führen Sie die Logik aus und geben Sie einen optionalen Wert zurück.

Vue.js-Ereignismodifikatoren werden verwendet, um bestimmte Verhaltensweisen hinzuzufügen, darunter: Verhindern von Standardverhalten (.prevent), Stoppen von Ereignisblasen (.stop), Einmaliges Ereignis (.once), Erfassen von Ereignissen (.capture), Passives Abhören von Ereignissen (.passive), Adaptiv Modifikator (.self)Schlüsselmodifikator (.key)
