Im Vergleich zu vue2 verfügt vue3 über ein zusätzliches App-Konzept, und die Erstellung von vue3-Projekten ist ebenfalls // Haupt.js importiere { createApp } von 'vue' App aus „./App.vue“ importieren Importieren Sie ElementPlus von „element-plus“. const app = createApp(App) app.use(ElementPlus) // Verwenden Sie das Ele.me-Framework app.mount('#app') Daher ist auch Vue.extend weg. Vue2 erstellt ein Plugin: Standardfunktion exportieren installieren (Vue) { let app = Vue.extend({ rendern (h) { return h('div', { Stil: { Anzeige: this.isShow ? 'flex' : 'keine' } }) } }) let appDom = neue App({ el: document.createElement('div'), Daten: Funktion () { zurückkehren { isShow: false } } }) Funktion zeigen () { appDom.isShow = true } Funktion ausblenden () { appDom.isShow = false } Vue.prototype.$show = anzeigen Vue.prototype.$hide = ausblenden Dokument.Body.AnhängenUntergeordnetesElement(appDom.$el) } Vue3 erstellt ein Plugin: importiere { createApp, h } von 'vue' exportiere Standardfunktion install (App) { let app = erstelleApp({ Daten() { zurückkehren { isShow: false, } }, rendern() { return h('div', { Stil: { Anzeige: this.isShow ? 'flex' : 'keine' } }) } }) const vNodeDom = document.createElement('div') Dokument.Body.AnhängenUntergeordnetesElement(vNodeDom) const vm = app.mount(vNodeDom) App.config.globalProperties.$show = Funktion () { vm.isShow = true } App.config.globalProperties.$hide = Funktion () { vm.isShow = false } } Im Vergleich dazu können wir feststellen, dass die DOM-Mounting-Methode von vue3 darin besteht, eine neue App zu erstellen und dann die Methode mount() aufzurufen, um sie in die Seite einzufügen. Auch die Einbindungsmethode globaler Methoden ändert sich von Vue.prototype von vue2 zu App.config.globalProperties von vue3. Wenn das Vue3-Plug-In außerdem „createApp“ verwendet, um eine neue DOM-Struktur zu erstellen und in die Seite einzufügen, wird es von der in main.js erstellten App isoliert. Dies bedeutet, dass die in main.js verwendeten Komponenten und öffentlichen Methoden in diesem Plug-In nicht verwendet werden können. // myCom.vue <Vorlage> <el-button>Schaltfläche</el-button> </Vorlage> // myCom.js importiere { createApp, h } von 'vue' importiere myCom aus „./myCom.vue“ exportiere Standardfunktion install (App) { let app = erstelleApp({ Daten() { zurückkehren { isShow: false } }, rendern() { Rückgabewert h(myCom) } }) const vNodeDom = document.createElement('div') Dokument.Body.AnhängenUntergeordnetesElement(vNodeDom) app.mount(vNodeDom) } Im obigen Beispiel kann der el-button nicht normal angezeigt werden und die Konsole meldet einen Fehler:
Wenn Sie daher ein neues DOM erstellen und die in main.js global registrierten Komponenten und Methoden verwenden möchten, können Sie createApp nicht verwenden. Nach Rücksprache mit den Entwicklern von vue3 bin ich zu folgender Lösung gekommen: (Probleme) importiere { render, h } von 'vue' importiere myCom aus „./myCom.vue“ exportiere Standardfunktion install (App) { sei vNode = h({ Daten() { zurückkehren { isShow: false, } }, rendern() { Rückgabewert h(myCom) } }) const vNodeDom = document.createElement('div') Dokument.Body.AnhängenUntergeordnetesElement(vNodeDom) vNode.appContext = App._context rendern(vNode, vNodeDom) App.config.globalProperties.$show = Funktion () { vNode.component.proxy.isShow = true } App.config.globalProperties.$hide = Funktion () { vNode.component.proxy.isShow = false } } Dieses Mal wird keine neue App erstellt. Stattdessen wird der Kontext der ursprünglichen App in den vNode kopiert, sodass Komponenten und öffentliche Methoden gemeinsam genutzt werden können. Der Zugriff auf die neu erstellten Plugin-Eigenschaften und -Methoden erfolgt über vNode.component.proxy. el-button wird auch korrekt analysiert Dies ist das Ende dieses Artikels zum Schreiben eines Plug-Ins für Vue3 zum Mounten von DOM. Weitere relevante Inhalte zum Vue-Mounting-DOM-Plug-In 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:
|
<<: Grafisches Tutorial zu MySQL-Downloads und Installationsdetails
>>: CentOS 7 erstellt Hadoop 2.10 mit hoher Verfügbarkeit (HA)
Der von ${param} übergebene Parameter wird als Te...
In diesem Artikel wird der spezifische Code von j...
Kürzlich hat Microsoft das Serversystem 2019 verö...
KVM steht für Kernel-based Virtual Machine und is...
MySQL-Abfrage-Steueranweisungen Felddeduplizierun...
1. Passwort ändern 1. Ändern Sie das Passwort nor...
brauchen: Verwenden Sie Docker, um den Dualprozes...
Auf einem Linux-Computer gibt es zwei Zeitzonen: ...
Hintergrund Der Unternehmenscode wird Dritten zur...
Verwendung von neuen Die Funktion von new besteht...
Diese Spezifikationen sollen die Veröffentlichung ...
1. Übersicht Redis Cluster ermöglicht hohe Verfüg...
Inhaltsverzeichnis 01 Szenarioanalyse 02 Funktion...
In diesem Artikelbeispiel wird der spezifische Co...
Lastenausgleich ist ein häufig verwendetes Mittel...