


Einführung in die Bereitstellung benutzerdefinierter Komponentenereignisse von Vue EventBus
In diesem Artikel wird hauptsächlich die Bereitstellung benutzerdefinierter Komponentenereignisse von Vue vorgestellt. In diesem Artikel wird hauptsächlich EventBus für die Datenübermittlung vorgestellt.
Vorwort
Komponentenbasierte Anwendungskonstruktion ist eines der Merkmale von Vue, daher müssen wir während des eigentlichen Entwicklungsprozesses von Vue häufig benutzerdefinierte Komponenten kapseln, um die Entwicklung zu verbessern Effizienz. In den meisten Fällen existiert eine Komponente nicht isoliert. Sie interagiert zwangsläufig mit übergeordneten Komponenten und Geschwisterkomponenten. Daher fassen wir hier zwei Möglichkeiten der Komponentendateninteraktion zusammen: EventBus und die Verwendung des Vuex-Frameworks für die Zustandsverwaltung.
Ich werde zwei verschiedene Interaktionsmethoden verwenden, nämlich die Dateninteraktion zwischen übergeordneten und untergeordneten Komponenten und die Dateninteraktion zwischen Geschwisterkomponenten.
Aus Platzgründen wird in diesem Artikel hauptsächlich EventBus für die Datennachrichten vorgestellt. Die Verwendung des Vuex-Frameworks für die Statusverwaltung wird im nächsten Artikel vorgestellt.
Falleinführung
Dieses Kapitel enthält eine große Anzahl von Codebeispielen, um den Lesern das Lesen zu erleichtern Verzeichnis- und Komponenteneinführungen werden vorgenommen. In diesem Kapitel werden hauptsächlich zwei untergeordnete Komponenten und eine übergeordnete Komponente verwendet.
Dateiname der untergeordneten Komponente: SearchInput.vue und SearchItem.vue
Dateiname der übergeordneten Komponente: StateView.vue
Anzeige der Verzeichnisstruktur:
1. SearchInput.vue
Komponenteneinführung : Ein Eingabefeld, das die onInput-Methode verwendet, um den Eingabeinhalt zu überwachen, und die Methode aufruft, um die Daten im Eingabefeld zu übergeben.
Codeanzeige:
<template> <p> <input placeholder="搜索内容" v-model="searchContent"/> </p> </template> <script type="text/ecmascript-6"> export default{ data(){ return{ searchContent:"" } }, props:{ } } </script> <style lang="stylus" rel="stylesheet/stylus"> </style>
SearchItem.vue
Komponenteneinführung: eine Spanne, die hauptsächlich zum Empfangen von übergeordneten Elementen verwendet wird Komponenten Der übergebene Inhalt und der vom Eingabefeld der Geschwisterkomponente übergebene Inhalt werden empfangen und angezeigt.
Codebeispiel:
<template> <span class="item"> {{content}} </span> </template> <script type="text/ecmascript-6"> export default{ data(){ return{ content:this.itemContent } }, props:{ itemContent:{ type:String, required:true } } } </script> <style lang="stylus" rel="stylesheet/stylus"> .item background #f4f4f4 padding 3px 5px box-sizing border-box display inline-block cursor pointer </style>
StateView.vue
Komponenteneinführung: übergeordnete Komponente, zeigt hauptsächlich Seiten an und lädt untergeordnete Komponenten
Codebeispiel:
<template> <p> <search-view></search-view> <p> <search-item :itemContent="content"/> <search-item itemContent="热门搜索2"/> <search-item itemContent="热门搜索3"/> </p> <p>{{content}}</p> </p> </template> <script type="text/ecmascript-6"> import searchView from '../components/SearchInput.vue' import searchItem from '../components/SearchItem.vue' export default{ data () { return { content:"接收输入框的值" } }, components: { searchView, searchItem } } </script> <style lang="stylus" rel="stylesheet/stylus"> </style>
Text
EventBus
1. Die übergeordnete Komponente sendet Daten über das von der untergeordneten Komponente definierte props
-Methode der Instanz empfangen. Dies ist anwendbar, wenn eine untergeordnete Komponente eine Nachricht an eine übergeordnete Komponente sendet oder wenn eine untergeordnete Komponente eine Nachricht an eine Geschwisterkomponente sendet. $emit
$on
1 Übergeben Sie Daten an die untergeordnete Komponente (SearchItem) über die
übergeordnete Komponente (. StateView);props
2. Die untergeordnete Komponente (SearchInput) übergibt Daten an die übergeordnete Komponente (StateView) und die Geschwisterkomponente (SearchItem) über
EventBus
Verzeichnisstrukturanzeige
Effektanzeige
Codeanzeige: (Fett zeigt Änderungen an )
1. Schritt 1: Passen Sie einen EventBus an (SearchEvent.js)
import Vue from 'Vue' export default new Vue()
Erstellen Sie eine Instanz von Vue und geben Sie sie aus.
new
Schritt 2: Unterkomponente sendet Datennachricht über EventBus
<template> <p> <input placeholder="搜索内容" @input="sendEvent" v-model="searchContent"/> //增加了@input=“sendEvent”,去监听onInput事件,并回调sendEvent方法 </p> </template> <script type="text/ecmascript-6"> import searchEvent from '../event/SearchEvent' //导入EventBus export default{ data(){ return{ searchContent:"" } }, methods:{ sendEvent:function(){ //定义sendEvent方法,在input中监听onInput,并回调该方法 /** * 通过导入的searchEvent调用$emit方法去发送数据消息。 * 第一个参数为事件名,到时候我们要通过该事件名去接收数 * 第二个参数为数据值,如果只有一个参数,我们可以直接传递该参数 * 如果有两个及以上的参数,我们可以通过对象的形式去传递。 */ searchEvent.$emit("search",this.searchContent) //多个参数传递的示例: //searchEvent.$emit("search",{"content":this.searchContent,"valTwo":"valTow"}) } }, props:{ } } </script> <style lang="stylus" rel="stylesheet/stylus"> </style>
, um das
-Ereignis zu überwachen. Wenn festgestellt wird, dass sich der Inhalt im Eingabefeld geändert hat, rufen Sie die-Methode zurück und Rufen Sie die Methode @input="sendEvent"
auf, um die Daten zu senden. Senden Sie onInput
sendEvent
EventBus.emit()
Schritt 3. Die übergeordnete Komponente (StateView) und die untergeordnete Komponente (SearchItem) empfangen Datennachrichten
StateView.vue
<template> <p> <search-view></search-view> <p> <search-item :itemContent="content"/> //通过props去为子组件传递(动态数据:content)数据 <search-item itemContent="热门搜索2"/> //通过props去为子组件传递(固定数据:热门搜索2)数据 <search-item itemContent="热门搜索3"/> </p> <p>{{content}}</p> </p> </template> <script type="text/ecmascript-6"> import searchView from '../components/SearchInput.vue' import searchItem from '../components/SearchItem.vue' import searchEvent from '../event/SearchEvent' //导入EventBus export default{ data () { return { content:"接收输入框的值" } }, mounted(){ /** * 在mounted接受数据消息,$on接受两个参数。 * 第一个参数是消息事件名,应该与发送数据消息的第一个参数相同,否则接收不到数据消息 * 第二个参数是一个函数,对数据消息事件做处理;该函数带一个参数,则是数据。 */ searchEvent.$on('search',(val)=>{ this.content=val; //示例:如果数据传递的是对象形式 // this.content=val.content; }) }, components: { searchView, searchItem } } </script> <style lang="stylus" rel="stylesheet/stylus"> </style>
.
2. Empfangen Sie die Datennachricht der Unterkomponente (SearchInput), indem Sie die Methode props
im Lebenszyklus der Komponente
mounted
SearchItem.vue<🎜 ändern >EventBus.on()
<template> <span class="item"> {{content}} </span> </template> <script type="text/ecmascript-6"> import searchEvent from '../event/SearchEvent' //导入EventBus export default{ data(){ return{ content:this.itemContent } }, props:{ itemContent:{ type:String, required:true } }, mounted(){ /** * 在mounted接受数据消息,$on接受两个参数。 * 第一个参数是消息事件名,应该与发送数据消息的第一个参数相同,否则接收不到数据消息 * 第二个参数是一个函数,对数据消息事件做处理;该函数带一个参数,则是数据。 */ searchEvent.$on('search',(val)=>{ this.content=val; }) } } </script> <style lang="stylus" rel="stylesheet/stylus"> .item background #f4f4f4 padding 3px 5px box-sizing border-box display inline-block cursor pointer </style>
Im obigen Beispiel machen wir hauptsächlich eines:
Empfangen durch Aufrufen der
Methode im Komponenten-Lebenszyklus Datennachricht der Unterkomponente (SearchInput) und ändern Sie den Inhaltswert.
Wir können spüren, dass, sobald SearchInput eine Datennachricht sendet, alle Orte, die für den Empfang des mounted
-Ereignisses registriert sind, die Datennachricht erhalten EventBus.on()
Bewertung: search
1. Die übergeordnete Komponente kann über props
Daten an die untergeordnete Komponente weitergeben.
2. Wenn eine untergeordnete Komponente eine Nachricht an eine übergeordnete Komponente oder eine untergeordnete Komponente eine Nachricht an eine Geschwisterkomponente übergibt, können Sie EventBus verwenden, um einen Vue zu instanziieren und $emit
und $on
zu übergeben Methoden der Instanz und Empfangsdatennachrichten.
3. Sobald die Datennachricht gesendet wurde, erhalten alle Orte, die für den Empfang der Datennachricht registriert sind, die Datennachricht.
Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.
Verwandte Empfehlungen:
Vue-Implementierung zurück zu top backToTop Komponenten
Einführung in die Verwendung der VUE-Region-Selektor-Komponente (V-Distpicker)
Das obige ist der detaillierte Inhalt vonEinführung in die Bereitstellung benutzerdefinierter Komponentenereignisse von Vue EventBus. 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



Sie können der VUE -Taste eine Funktion hinzufügen, indem Sie die Taste in der HTML -Vorlage an eine Methode binden. Definieren Sie die Methode und schreiben Sie die Funktionslogik in der VUE -Instanz.

Die Verwendung von Bootstrap in Vue.js ist in fünf Schritte unterteilt: Startstrap installieren. Bootstrap in main.js. Verwenden Sie die Bootstrap -Komponente direkt in der Vorlage. Optional: benutzerdefinierter Stil. Optional: Verwenden Sie Plug-Ins.

Mit der Watch -Option in Vue.js können Entwickler auf Änderungen in bestimmten Daten anhören. Wenn sich die Daten ändert, löst sich eine Rückruffunktion aus, um Aktualisierungsansichten oder andere Aufgaben auszuführen. Zu den Konfigurationsoptionen gehören unmittelbar, die festlegen, ob ein Rückruf sofort ausgeführt werden soll, und Deep, das feststellt, ob Änderungen an Objekten oder Arrays rekursiv anhören sollen.

Es gibt drei Möglichkeiten, sich auf JS -Dateien in Vue.js zu beziehen: Geben Sie den Pfad direkt mit dem & lt; Skript & gt an. Etikett;; Dynamischer Import mit dem montierten () Lebenszyklushaken; und importieren über die Vuex State Management Library.

VUE Multi-Page-Entwicklung ist eine Möglichkeit, Anwendungen mithilfe des Vue.js-Frameworks zu erstellen, in dem die Anwendung in separate Seiten unterteilt ist: Code-Wartung: Die Aufteilung der Anwendung in mehrere Seiten kann das Verwalten und Wartungsbereich erleichtern. Modularität: Jede Seite kann als separates Modul für eine einfache Wiederverwendung und den Austausch verwendet werden. Einfaches Routing: Die Navigation zwischen Seiten kann durch einfache Routing -Konfiguration verwaltet werden. SEO -Optimierung: Jede Seite hat eine eigene URL, die SEO hilft.

VUE.JS hat vier Methoden, um zur vorherigen Seite zurückzukehren: $ router.go (-1) $ router.back () verwendet & lt; Router-Link to = & quot;/& quot; Komponentenfenster.history.back () und die Methodenauswahl hängt von der Szene ab.

Sie können die Vue -Version mit Vue Devtools abfragen, um die Registerkarte VUE in der Konsole des Browsers anzuzeigen. Verwenden Sie NPM, um den Befehl "npm list -g vue" auszuführen. Suchen Sie das Vue -Element im Objekt "Abhängigkeiten" der Datei package.json. Führen Sie für Vue -CLI -Projekte den Befehl "Vue --version" aus. Überprüfen Sie die Versionsinformationen im & lt; Skript & gt; Tag in der HTML -Datei, die sich auf die VUE -Datei bezieht.

Es gibt zwei Hauptmöglichkeiten, um Parameter an vue.js -Funktionen zu übergeben: Daten mit Slots übergeben oder eine Funktion mit Bindungen binden und Parameter bereitstellen: PLAMETER mithilfe von Slots: Daten in Komponentenvorlagen übergeben, in Komponenten zugegriffen und als Parameter der Funktion verwendet werden. Passparameter mit Bindungsbindung passieren: Bindungsfunktion in VUE.JS -Instanz und Bereitstellung von Funktionsparametern.
