Heim Web-Frontend js-Tutorial Ausführliche Erklärung zur Implementierung von Vuex (ausführliches Tutorial)

Ausführliche Erklärung zur Implementierung von Vuex (ausführliches Tutorial)

Jun 06, 2018 pm 02:18 PM
vuex 简单 Einfach zu bedienen

In diesem Artikel wird hauptsächlich die Implementierung eines einfachen Vuex vorgestellt. Jetzt teile ich ihn mit Ihnen und gebe Ihnen eine Referenz.

Zuerst müssen wir wissen, warum wir Vuex verwenden. Die Kommunikation zwischen übergeordneten und untergeordneten Komponenten kann über Requisiten und benutzerdefinierte Ereignisse erfolgen, und die einfache Kommunikation zwischen nicht über- und untergeordneten Komponenten erfolgt über den Bus (eine leere Vue-Instanz). Verwenden Sie dann Vuex, um die komplexe Kommunikation von Nicht-Eltern-Kind-Komponenten zu lösen.

Es spielt keine Rolle, ob Sie nur wissen, wie man Vuex verwendet. Jeder kann die Dokumentation lesen und den Code eingeben. Möchten Sie nicht wissen, wie Vuex implementiert wird? !

Lassen wir den Quellcode von vuex beiseite und überlegen wir uns zunächst, wie man ein einfaches „vuex“ implementiert. Wie einfach ist das? Ich möchte keine Getter, Mutationen, Aktionen usw., ich möchte nur den Status.

Nicht-Eltern-Kind-Komponentenkommunikation

Vor der Implementierung müssen wir die Implementierung von Bus überprüfen, indem wir uns das Beispiel von der offiziellen Website leihen:

var bus = new Vue()

// 触发组件 A 中的事件
bus.$emit('id-selected', 1)

// 在组件 B 创建的钩子中监听事件
bus.$on('id-selected', function (id) {
 // ...
})
Nach dem Login kopieren

Wenn ich an diese Tage zurückdenke, wusste ich nicht, wo ich den instanziierten Bus platzieren sollte, also hatte ich keine andere Wahl, als ihn unter Windows zu platzieren und weiterhin window.bus zu verwenden. Obwohl dies in Ordnung ist, wirkt es sich dennoch auf den globalen Geltungsbereich aus.

Eines Tages stellte ich plötzlich fest, dass ich es unter der Root-Instanz von Vue mounten konnte (verabschieden Sie sich von nun an von window.bus), also kam ich auf:

var app = new Vue({
 el: '#app',
 bus: bus
})

// 使用 bus
app.$options.bus

// or
this.$root.$options.bus
Nach dem Login kopieren

Dann habe ich entdeckte, dass der Bus tatsächlich nicht nur über Ereignisse kommunizieren kann. Tatsächlich ist Bus eine Vue-Instanz, auf die Daten reagieren. Beispielsweise gibt es unter der Root-Instanz der App zwei nicht übergeordnete und untergeordnete Komponenten, die beide Busdaten verwenden und daher synchron reagieren.

var bus = new Vue({
 data: {
  count: 0
 }
})
Nach dem Login kopieren

Oben ändert Unterkomponente a die Anzahl. Wenn Unterkomponente b die Anzahl verwendet, kann sie auf den neuesten Zählwert reagieren.

Haben Sie es nach so viel Reden noch nicht entdeckt? Geht es dabei nicht nur darum, die Kommunikation zwischen Nichtkomponenten zu realisieren, den Zustand von Vuex? !

Bus kapseln

Ja, kapseln Sie den Bus gerade. Dies ist das einfachste „Vuex“ (nur mit der Funktion „Zustand“). Zuerst haben wir eine Root-Instanz-App mit zwei Nicht-Eltern-Kind-Komponenten childA und childB .

Die Implementierung des HTML-Codes ist wie folgt:

<p id="app">
 <child-a></child-a>
 <child-b></child-b>
</p>
Nach dem Login kopieren

Implementierung der Nicht-Eltern-Kind-Komponente

Dann gibt es zwei Nicht-Eltern- Untergeordnete Komponenten und die Implementierung von App und untergeordneter Komponente verwenden beide die Anzahl des Busses, der hier durch store.state dargestellt wird, was mit vuex übereinstimmt:

// 待实现
const store = new Store(Vue, {
 state: {
  count: 0
 }
})

// 子组件 a
const childA = {
 template: &#39;<button @click="handleClick">click me</button>&#39;,
 methods: {
  handleClick () {
   this.$store.state.count += 1
  }
 }
}

// 子组件 b
const childB = {
 template: &#39;<p>count: {{ count }}</p>&#39;,
 computed: {
  count () {
   return this.$store.state.count
  }
 }
}

new Vue({
 el: &#39;#app&#39;,
 components: {
  &#39;child-a&#39;: childA,
  &#39;child-b&#39;: childB
 },
 store: store
})
Nach dem Login kopieren

Stellen Sie sicher, dass es einen Store gibt, in dem implementiert werden kann der Code. Die erforderlichen Parameter, da ich zu faul bin, Vue.use () hier zu verwenden, übergebe ich Vue direkt als Parameter zur Verwendung, und dann stimmt der zweite Parameter mit dem Parameter überein, den wir mit vuex übergeben haben.

Implementierung von Store

Der nächste Schritt ist die Implementierung von Store, eine zweistufige Implementierung:

  1. Erstellen Sie eine bus-Instanz;

  2. Alle untergeordneten Komponenten auf this.$store zugreifen lassen.

Der erste Schritt wurde bereits oben erwähnt. Der zweite Schritt verwendet hauptsächlich Vue.mixin für die globale Mischung, findet jedoch lediglich die Root-Instanz mit dem Store und weist den Store dem Vue-Prototyp zu . Es ermöglicht auch das Einmischen der Root-Instanz-App, ohne dass speziell Mixins geschrieben werden müssen. Der von

class Store {
 constructor (Vue, options) {
  var bus = new Vue({
   data: {
    state: options.state
   }
  })

  this.install(Vue, bus)
 }
 
 install (Vue, bus) {
  Vue.mixin({
   beforeCreate () {
    if (this.$options.store) {
     Vue.prototype.$store = bus
    }
   }
  })
 }
}
Nach dem Login kopieren

implementierte Store ist ein einfacher „vuex“ mit dem Status „vuex“, der ausreicht, um eine einfache Kommunikation zwischen nicht übergeordneten und untergeordneten Komponenten zu ermöglichen.

Erstellen Sie eine Businstanz im Konstruktor von Store und fügen Sie sie in den Prototyp von Vue ein, damit alle Komponenten auf diesen.$store zugreifen können, der die Businstanz ist. this.$store ist eine Vue-Instanz. Durch den Zugriff auf this.$store.state.count wird also tatsächlich auf Daten zugegriffen, wodurch eine Antwortsynchronisierung zwischen nicht übergeordneten und untergeordneten Komponenten erreicht wird. Der gesamte Quellcode ist hier verfügbar.

Ich habe das Obige für Sie zusammengestellt und hoffe, dass es Ihnen in Zukunft hilfreich sein wird.

Verwandte Artikel:

Was sind die Sicherheitslücken bei der Verwendung von Timing-Angriffen in Knotenanwendungen?

Einseitige Implementierung in Vue-Komponentenlieferungsobjektbindung, wie geht das?

So verwenden Sie TypeScript in Vue-Komponenten (ausführliches Tutorial)

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung zur Implementierung von Vuex (ausführliches Tutorial). 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ß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)

Der einfachste Weg, die Seriennummer der Festplatte abzufragen Der einfachste Weg, die Seriennummer der Festplatte abzufragen Feb 26, 2024 pm 02:24 PM

Die Seriennummer der Festplatte ist eine wichtige Kennung der Festplatte und dient in der Regel zur eindeutigen Identifizierung der Festplatte und zur Identifizierung der Hardware. In einigen Fällen müssen wir möglicherweise die Seriennummer der Festplatte abfragen, beispielsweise bei der Installation eines Betriebssystems, der Suche nach dem richtigen Gerätetreiber oder der Durchführung von Festplattenreparaturen. In diesem Artikel werden einige einfache Methoden vorgestellt, mit denen Sie die Seriennummer der Festplatte überprüfen können. Methode 1: Verwenden Sie die Windows-Eingabeaufforderung, um die Eingabeaufforderung zu öffnen. Drücken Sie im Windows-System die Tasten Win+R, geben Sie „cmd“ ein und drücken Sie die Eingabetaste, um den Befehl zu öffnen

Wie schreibe ich einen einfachen Generator für Schülerleistungsberichte mit Java? Wie schreibe ich einen einfachen Generator für Schülerleistungsberichte mit Java? Nov 03, 2023 pm 02:57 PM

Wie schreibe ich einen einfachen Generator für Schülerleistungsberichte mit Java? Der Student Performance Report Generator ist ein Tool, das Lehrern und Erziehern dabei hilft, schnell Berichte über die Schülerleistung zu erstellen. In diesem Artikel wird erläutert, wie Sie mit Java einen einfachen Generator für Schülerleistungsberichte schreiben. Zuerst müssen wir das Studentenobjekt und das Studentennotenobjekt definieren. Das Schülerobjekt enthält grundlegende Informationen wie den Namen und die Schülernummer des Schülers, während das Schülerergebnisobjekt Informationen wie die Fachnoten und die Durchschnittsnote des Schülers enthält. Das Folgende ist die Definition eines einfachen Studentenobjekts: öffentlich

Wie schreibe ich ein einfaches Online-Reservierungssystem mit PHP? Wie schreibe ich ein einfaches Online-Reservierungssystem mit PHP? Sep 26, 2023 pm 09:55 PM

So schreiben Sie ein einfaches Online-Reservierungssystem mit PHP Mit der Popularität des Internets und dem Streben der Benutzer nach Bequemlichkeit werden Online-Reservierungssysteme immer beliebter. Ganz gleich, ob es sich um ein Restaurant, ein Krankenhaus, einen Schönheitssalon oder eine andere Dienstleistungsbranche handelt, ein einfaches Online-Reservierungssystem kann die Effizienz steigern und den Benutzern ein besseres Serviceerlebnis bieten. In diesem Artikel wird erläutert, wie Sie mit PHP ein einfaches Online-Reservierungssystem schreiben und spezifische Codebeispiele bereitstellen. Datenbank und Tabellen erstellen Zuerst müssen wir eine Datenbank erstellen, um Reservierungsinformationen zu speichern. In MyS

Schnellstart: Verwenden Sie Go-Sprachfunktionen, um ein einfaches Bibliotheksverwaltungssystem zu implementieren Schnellstart: Verwenden Sie Go-Sprachfunktionen, um ein einfaches Bibliotheksverwaltungssystem zu implementieren Jul 30, 2023 am 09:18 AM

Schnellstart: Implementierung eines einfachen Bibliotheksverwaltungssystems mithilfe von Go-Sprachfunktionen Einführung: Mit der kontinuierlichen Entwicklung auf dem Gebiet der Informatik werden die Anforderungen an Softwareanwendungen immer vielfältiger. Als allgemeines Verwaltungsinstrument ist das Bibliotheksverwaltungssystem auch für viele Bibliotheken, Schulen und Unternehmen zu einem der notwendigen Systeme geworden. In diesem Artikel werden wir Go-Sprachfunktionen verwenden, um ein einfaches Bibliotheksverwaltungssystem zu implementieren. Anhand dieses Beispiels können Leser die grundlegende Verwendung von Funktionen in der Go-Sprache erlernen und lernen, wie man ein praktisches Programm erstellt. 1. Designideen: Lassen Sie uns zuerst

Wie schreibe ich ein einfaches Musikempfehlungssystem in C++? Wie schreibe ich ein einfaches Musikempfehlungssystem in C++? Nov 03, 2023 pm 06:45 PM

Wie schreibe ich ein einfaches Musikempfehlungssystem in C++? Einleitung: Das Musikempfehlungssystem ist ein Forschungs-Hotspot in der modernen Informationstechnologie. Es kann Benutzern Songs basierend auf ihren Musikpräferenzen und Verhaltensgewohnheiten empfehlen. In diesem Artikel wird erläutert, wie Sie mit C++ ein einfaches Musikempfehlungssystem schreiben. 1. Benutzerdaten sammeln Zuerst müssen wir die Musikpräferenzdaten der Benutzer sammeln. Durch Online-Umfragen, Fragebögen etc. können die Vorlieben der Nutzer für verschiedene Musikrichtungen ermittelt werden. Speichern Sie Daten in einer Textdatei oder Datenbank

Wie schreibe ich ein einfaches Minesweeper-Spiel in C++? Wie schreibe ich ein einfaches Minesweeper-Spiel in C++? Nov 02, 2023 am 11:24 AM

Wie schreibe ich ein einfaches Minesweeper-Spiel in C++? Minesweeper ist ein klassisches Puzzlespiel, bei dem die Spieler alle Blöcke entsprechend der bekannten Anordnung des Minenfelds aufdecken müssen, ohne auf die Minen zu treten. In diesem Artikel stellen wir vor, wie man mit C++ ein einfaches Minesweeper-Spiel schreibt. Zuerst müssen wir ein zweidimensionales Array definieren, um die Karte des Minesweeper-Spiels darzustellen. Jedes Element im Array kann eine Struktur sein, die zum Speichern des Status des Blocks verwendet wird, z. B. ob er aufgedeckt ist, ob Minen vorhanden sind usw. Darüber hinaus müssen wir auch definieren

Installieren Sie cmake mit Ubuntu und seiner einfachen Verwendung Installieren Sie cmake mit Ubuntu und seiner einfachen Verwendung Jan 01, 2024 am 08:57 AM

Vorwort: Vor kurzem wollte ich die Entwicklungsumgebung plötzlich auf Linux übertragen. Gleichzeitig bereitete ich mich darauf vor, einige Open-Source-Codes auf Github zu lesen. Dabei stellte ich fest, dass Open-Source-Projekte jetzt im Allgemeinen mit cmake verwaltet werden. Also habe ich einfach auf meiner eigenen virtuellen Maschine daran herumgebastelt. Ich wusste zunächst nicht, was cmake ist, aber später verstand ich durch einiges Fummeln ungefähr seine Rolle. Es teilt dem Compiler tatsächlich mit, wie er den Quellcode kompilieren und verknüpfen soll. Vielleicht möchten Sie fragen, warum Sie ein Makefile benötigen, wenn es kein Makefile gibt. Dies beinhaltet plattformübergreifende Probleme. Unter der Windows-Plattform werden diese über Projektdateien verwaltet. Wenn cmake nicht verwendet wird, müssen wir entsprechende Projektdateien schreiben und für Windows- und Linux-Systeme erstellen.

MySQL-Tabellendesign-Leitfaden: Erstellen Sie eine einfache Anwesenheitsliste für Mitarbeiter MySQL-Tabellendesign-Leitfaden: Erstellen Sie eine einfache Anwesenheitsliste für Mitarbeiter Jul 01, 2023 pm 01:54 PM

MySQL-Tabellendesign-Leitfaden: Erstellen einer einfachen Mitarbeiteranwesenheitstabelle In der Unternehmensführung ist die Verwaltung der Mitarbeiteranwesenheit eine entscheidende Aufgabe. Um die Anwesenheit der Mitarbeiter genau zu erfassen und zu zählen, können wir mithilfe der MySQL-Datenbank eine einfache Anwesenheitsliste der Mitarbeiter erstellen. In diesem Artikel erfahren Sie, wie Sie diese Tabelle entwerfen und erstellen und entsprechende Codebeispiele bereitstellen. Zunächst müssen wir die erforderlichen Felder für die Anwesenheitsliste der Mitarbeiter identifizieren. Im Allgemeinen müssen Anwesenheitslisten von Mitarbeitern mindestens die folgenden Felder enthalten: Mitarbeiter-ID, Datum, Arbeitszeit, dienstfreie Zeit

See all articles