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)
Inhaltsverzeichnis 1. Laden Sie das MySQL-Install...
So schreiben Sie Urteilsaussagen in MySQL: Method...
Vorwort: Ich bin auf die Anforderung gestoßen, be...
1. Ändern Sie die Firewall-Konfigurationsdatei # ...
1. Herunterladen https://dev.mysql.com/downloads/...
Nachdem wir den transform Kurs abgeschlossen habe...
Ich glaube, die Befehle, die ich am häufigsten ve...
In diesem Artikel wird der spezifische Code von J...
In diesem Artikelbeispiel wird der spezifische Co...
Vorwort In der Praxis kann es zu folgendem Proble...
Voraussetzung: Sie müssen das Modul ngx_http_head...
Schreiben einer Docker-Datei Konfigurieren Sie di...
Teilen Sie einen Echtzeituhreffekt, der mit nativ...
Wenn Sie MySQL zum ersten Mal lernen, verstehen S...
Bei der Installation von MySQL sind mir mehrere P...