Inhaltsverzeichnis
子组件
组件B
Heim Web-Frontend View.js Verwendung und häufige Szenarien von benutzerdefinierten Vue-Ereignissen

Verwendung und häufige Szenarien von benutzerdefinierten Vue-Ereignissen

Sep 15, 2023 pm 12:12 PM
vue 用法 自定义事件 常见场景

Verwendung und häufige Szenarien von benutzerdefinierten Vue-Ereignissen

Verwendung und häufige Szenarien von benutzerdefinierten Vue-Ereignissen

Vue.js ist ein beliebtes JavaScript-Framework zum Erstellen von Benutzeroberflächen. In Vue können wir die Kommunikation zwischen Komponenten durch benutzerdefinierte Ereignisse implementieren. Benutzerdefinierte Ereignisse sind eine der sehr nützlichen Funktionen in Vue, die es uns ermöglichen, Daten zwischen verschiedenen Komponenten weiterzugeben und bestimmte Verhaltensweisen auszulösen. In diesem Artikel werden die Verwendung und häufige Szenarien benutzerdefinierter Ereignisse in Vue vorgestellt und spezifische Codebeispiele bereitgestellt.

1. Grundlegende Verwendung benutzerdefinierter Ereignisse

In Vue können wir die Methode $emit verwenden, um benutzerdefinierte Ereignisse auszulösen. Die Methode $emit empfängt zwei Parameter. Der erste Parameter ist der Name des auszulösenden Ereignisses und der zweite Parameter sind die zu übergebenden Daten. Komponenten, die benutzerdefinierte Ereignisse empfangen, müssen die v-on-Direktive verwenden, um auf Ereignisse zu warten und zugehörige Logik auszuführen, wenn das Ereignis ausgelöst wird.

Hier ist ein einfaches Beispiel, das zeigt, wie man ein benutzerdefiniertes Ereignis in einer übergeordneten Komponente auslöst und das Ereignis in einer untergeordneten Komponente empfängt und verarbeitet:

<!-- 父组件 -->
<template>
  <div>
    <button @click="triggerEvent">触发事件</button>
    <child-component @custom-event="handleEvent"></child-component>
  </div>
</template>

<script>
import ChildComponent from './ChildComponent.vue';

export default {
  components: {
    ChildComponent
  },
  methods: {
    triggerEvent() {
      this.$emit('custom-event', 'Hello, world!');
    },
    handleEvent(data) {
      console.log(data); // 输出:Hello, world!
    }
  }
}
</script>

<!-- 子组件 -->
<template>
  <div>
    <h1 id="子组件">子组件</h1>
  </div>
</template>

<script>
export default {
  mounted() {
    this.$emit('custom-event', 'Hello, world!');
  }
}
</script>
Nach dem Login kopieren

Wenn im obigen Beispiel auf die Schaltfläche „Ereignis auslösen“ geklickt wird, wird die übergeordnete Komponente Ein benutzerdefiniertes Ereignis wird ausgelöst und die Zeichenfolge „Hello, world!“ wird als Daten übergeben. Die Unterkomponente lauscht über die v-on-Direktive auf das benutzerdefinierte Ereignis und gibt die empfangenen Daten in der handleEvent-Methode aus.

2. Häufige Szenarien benutzerdefinierter Ereignisse

  1. Kommunikation zwischen übergeordneten und untergeordneten Komponenten

Benutzerdefinierte Ereignisse sind sehr praktisch, um Daten zu übertragen und die Kommunikation zwischen übergeordneten und untergeordneten Komponenten zu implementieren. Die übergeordnete Komponente kann über benutzerdefinierte Ereignisse Daten an die untergeordnete Komponente übergeben und die von der untergeordneten Komponente ausgelösten benutzerdefinierten Ereignisse abhören, um die Daten der untergeordneten Komponente abzurufen.

  1. Kommunikation zwischen Geschwisterkomponenten

Wenn zwei Komponenten keine Eltern-Kind-Beziehung haben, aber kommunizieren müssen, können Sie den Ereignisbus von Vue verwenden, um dies zu erreichen. Ein Ereignisbus ist eine leere Vue-Instanz, die zum Teilen von Ereignissen zwischen verschiedenen Komponenten verwendet wird. Benutzerdefinierte Ereignisse können über die Methoden $emit und $vnode.$on zwischen verschiedenen Komponenten ausgelöst und empfangen werden.

Hier ist ein Beispiel, das zeigt, wie der Ereignisbus für die Kommunikation zwischen Geschwisterkomponenten verwendet wird:

<!-- 组件A -->
<template>
  <div>
    <button @click="triggerEvent">触发事件</button>
  </div>
</template>

<script>
import eventBus from './eventBus';

export default {
  methods: {
    triggerEvent() {
      eventBus.$emit('custom-event', 'Hello, world!');
    }
  }
}
</script>

<!-- 组件B -->
<template>
  <div>
    <h1 id="组件B">组件B</h1>
  </div>
</template>

<script>
import eventBus from './eventBus';

export default {
  mounted() {
    eventBus.$on('custom-event', data => {
      console.log(data); // 输出:Hello, world!
    })
  }
}
</script>

<!-- eventBus.js -->
import Vue from 'vue';

const eventBus = new Vue();

export default eventBus;
Nach dem Login kopieren

Im obigen Beispiel löste Komponente A ein benutzerdefiniertes Ereignis über den Ereignisbus aus und übergab Daten. Komponente B lauscht über den Ereignisbus auf benutzerdefinierte Ereignisse und ruft Daten in der Rückruffunktion ab.

  1. Kommunikation zwischen ebenenübergreifenden Komponenten

Vue bietet eine Bereitstellungs-/Injektions-API, um die Kommunikation zwischen ebenenübergreifenden Komponenten zu erreichen. Durch die Verwendung von „prove“ in der übergeordneten Komponente zum Bereitstellen von Daten und die Verwendung von „inject“ in der untergeordneten Komponente zum Einfügen von Daten wird die Kommunikation zwischen Komponenten auf jeder Ebene erreicht.

Hier ist ein Beispiel, das zeigt, wie Provide und Inject verwendet werden, um eine Kommunikation zwischen ebenenübergreifenden Komponenten zu erreichen:

<!-- 父组件 -->
<template>
  <div>
    <p>父组件提供的数据:{{ data }}</p>
    <grand-child-component></grand-child-component>
  </div>
</template>

<script>
export default {
  provide() {
    return {
      data: 'Hello, world!'
    }
  }
}
</script>

<!-- 子组件 -->
<template>
  <div>
    <p>子组件注入的数据:{{ injectedData }}</p>
    <child-component></child-component>
  </div>
</template>

<script>
export default {
  inject: ['data'],
  computed: {
    injectedData() {
      return this.data;
    }
  }
}
</script>

<!-- 孙子组件 -->
<template>
  <div>
    <p>孙子组件注入的数据:{{ injectedData }}</p>
  </div>
</template>

<script>
export default {
  inject: ['data'],
  computed: {
    injectedData() {
      return this.data;
    }
  }
}
</script>
Nach dem Login kopieren

Im obigen Beispiel stellt die übergeordnete Komponente die Daten „Hallo Welt!“ über Provide bereit, die untergeordnete Komponente und Daten werden jeweils durch Injektion in die Enkelkomponenten eingefügt und in der Vorlage verwendet.

Zusammenfassung

Benutzerdefinierte Ereignisse sind eine sehr nützliche Funktion in Vue, mit der die Kommunikation zwischen Komponenten problemlos implementiert werden kann. In Vue können wir die Methode $emit verwenden, um benutzerdefinierte Ereignisse auszulösen und über die v-on-Direktive auf Ereignisse zu warten. Benutzerdefinierte Ereignisse eignen sich für die Kommunikation zwischen übergeordneten und untergeordneten Komponenten, Geschwisterkomponenten und ebenenübergreifenden Komponenten. Ich hoffe, dass die große Anzahl der in diesem Artikel bereitgestellten Beispielcodes Ihnen dabei helfen kann, die Verwendung und häufigen Szenarien benutzerdefinierter Ereignisse in Vue besser zu verstehen.

Das obige ist der detaillierte Inhalt vonVerwendung und häufige Szenarien von benutzerdefinierten Vue-Ereignissen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So fügen Sie Funktionen zu Schaltflächen für Vue hinzu So fügen Sie Funktionen zu Schaltflächen für Vue hinzu Apr 08, 2025 am 08:51 AM

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.

So verwenden Sie Bootstrap in Vue So verwenden Sie Bootstrap in Vue Apr 07, 2025 pm 11:33 PM

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.

So verwenden Sie Watch in Vue So verwenden Sie Watch in Vue Apr 07, 2025 pm 11:36 PM

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.

So verweisen Sie auf die JS -Datei mit Vue.js So verweisen Sie auf die JS -Datei mit Vue.js Apr 07, 2025 pm 11:27 PM

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.

Was bedeutet VUE Multi-Page-Entwicklung? Was bedeutet VUE Multi-Page-Entwicklung? Apr 07, 2025 pm 11:57 PM

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.

So fragen Sie die Version von Vue So fragen Sie die Version von Vue Apr 07, 2025 pm 11:24 PM

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.

So kehren Sie von Vue zur vorherigen Seite zurück So kehren Sie von Vue zur vorherigen Seite zurück Apr 07, 2025 pm 11:30 PM

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.

So verwenden Sie Funktionsabfangweserven So verwenden Sie Funktionsabfangweserven Apr 08, 2025 am 06:51 AM

Funktionsabfangen in VUE ist eine Technik, mit der die Häufigkeit, mit der eine Funktion eingerufen wird, innerhalb eines bestimmten Zeitraums aufgerufen wird und Leistungsprobleme verhindern. Die Implementierungsmethode lautet: Importieren Sie die Lodash -Bibliothek: importieren {dunounce} aus 'lodash'; Verwenden Sie die Dabounce -Funktion, um eine Intercept -Funktion zu erstellen: const dabouncedFunction = dunounce (() = & gt; { / logical /}, 500); Rufen Sie die Abfangfunktion auf und die Steuerfunktion wird höchstens einmal in 500 Millisekunden aufgerufen.

See all articles