Detaillierte Erklärung des einfachen Stores von Vue

Detaillierte Erklärung des einfachen Stores von Vue

Die einfachste Store-Anwendung in Vue ist die globale Speicherung.

Ich verwende hier zwei Komponenten, die zueinander springen ( Helloworld.vue und twopage.vue ). Erstere wird verwendet, um Daten in den Store zu legen, und letztere wird verwendet, um Daten aus dem Store abzurufen.

Zuerst müssen Sie vuex installieren: npm install vuex --save ;

Da Sie springen müssen, müssen Sie den Router installieren: npm install vue-router --save

Erstellen Sie einen neuen Store-Ordner und darin einen neuen Module-Ordner mit den getters.js und index.js .

Erstellen Sie mystate.js in Modulen

Bildbeschreibung hier einfügen

Setzen Sie unsere Variable msg in mystate:

konstanter Zustand = {
    msg: 'Dies ist mein Status',
}
Standard exportieren {
    Zustand
}

Getter enthalten die Schlüssel-Wert-Paare der Variablen, mit denen wir arbeiten:

const getter = {
    msg:state => staat.meinstaat.msg,
}
Standardgetter exportieren

Der Index wird zum Konfigurieren und Erstellen vuex.store verwendet:

Vue von „vue“ importieren
Vuex von „vuex“ importieren
Getter aus „./getters“ importieren
Vue.Verwenden(Vuex)
// https://webpack.js.org/guides/dependency-management/#requirecontext
const moduleFiles = require.context('./modules', true, /\.js$/)
// Es werden automatisch alle Vuex-Module in Ihrer Moduldatei benötigt. // Sie müssen die App nicht aus „./modules/app“ importieren.
// es werden automatisch alle Vuex-Module aus der Moduldatei angefordert
const module = moduleFiles.keys().reduce((modules, modulePath) => {
  // setze './app.js' => 'App'
  const Modulname = Modulpfad.replace(/^\.\/(.*)\.\w+$/, '$1')
  Konstantwert = ModuleDateien(Modulpfad)
  Module[Modulname] = Wert.Standard
  Rückführmodule
}, {})
const store = neuer Vuex.Store({
  Module,
  Getter,
})
Standardspeicher exportieren

Du musst Store und Router in der Vue-Instanz von main.js aufrufen (die Routen der beiden Seiten folgen später):

Vue von „vue“ importieren
Vuex von „vuex“ importieren
Getter aus „./getters“ importieren
Vue.Verwenden(Vuex)
// https://webpack.js.org/guides/dependency-management/#requirecontext
const moduleFiles = require.context('./modules', true, /\.js$/)
// Es werden automatisch alle Vuex-Module in Ihrer Moduldatei benötigt. // Sie müssen die App nicht aus „./modules/app“ importieren.
// es werden automatisch alle Vuex-Module aus der Moduldatei angefordert
const module = moduleFiles.keys().reduce((modules, modulePath) => {
  // setze './app.js' => 'App'
  const Modulname = Modulpfad.replace(/^\.\/(.*)\.\w+$/, '$1')
  Konstantwert = ModuleDateien(Modulpfad)
  Module[Modulname] = Wert.Standard
  Rückführmodule
}, {})
const store = neuer Vuex.Store({
  Module,
  Getter,
})
Standardspeicher exportieren

Konfigurieren Sie zwei Routen in index.js unter router :

Vue von „vue“ importieren
Vuex von „vuex“ importieren
Getter aus „./getters“ importieren
Vue.Verwenden(Vuex)
// https://webpack.js.org/guides/dependency-management/#requirecontext
const moduleFiles = require.context('./modules', true, /\.js$/)
// Es werden automatisch alle Vuex-Module in Ihrer Moduldatei benötigt. // Sie müssen die App nicht aus „./modules/app“ importieren.
// es werden automatisch alle Vuex-Module aus der Moduldatei angefordert
const module = moduleFiles.keys().reduce((modules, modulePath) => {
  // setze './app.js' => 'App'
  const Modulname = Modulpfad.replace(/^\.\/(.*)\.\w+$/, '$1')
  Konstantwert = ModuleDateien(Modulpfad)
  Module[Modulname] = Wert.Standard
  Rückführmodule
}, {})
const store = neuer Vuex.Store({
  Module,
  Getter,
})
Standardspeicher exportieren

Verwenden Sie die Routenansicht in App.vue:

<Vorlage>
  <div id="app">
   <Router-Ansicht></Router-Ansicht>
  </div>
</Vorlage>
<Skript>
Standard exportieren {
  Name: "App"
}
</Skript>
<Stil>
#app {
  Schriftfamilie: „Avenir“, Helvetica, Arial, serifenlos;
  -webkit-font-smoothing: Kantenglättung;
  -moz-osx-font-smoothing: Graustufen;
  Textausrichtung: zentriert;
  Farbe: #2c3e50;
  Rand oben: 60px;
}
</Stil>

Schließlich gibt es zwei Seitenkomponenten, HelloWorld.vue :

Zweiseitige Bindung und Überwachung von msg, wobei der neue Wert von msg in die globale Variable eingefügt wird.

Die Methode zur Überwachung der Auslösung ist setstate;

sessionStorage.setItem('msg', value) wird verwendet, um den Wert von value in den Wert einzufügen, der dem Schlüssel mit der Bezeichnung msg entspricht. Dabei handelt es sich um das in getters.js gespeicherte Schlüssel-Wert-Paar.

<Vorlage>
  <div Klasse="hallo">
    <img src="../assets/logo.png" />
    <br />
    <Eingabe v-Modell="msg"/>
    <h2>{{ msg }}</h2>
    <router-link to="/two">Ich möchte zur zweiten Seite</router-link>
  </div>
</Vorlage>
<Skript>
Standard exportieren {
  Name: "Hallo Welt",
  Daten() {
    zurückkehren {
      msg: "Willkommen beim neuen Vue-Projekt",
    };
  },
  Methoden: {
    setstate(Wert) {
      sessionStorage.setItem('msg', Wert);
    },
  },
  betrachten:
    msg(neuerName, alterName) {
      dies.setstate(neuerName);
    },
  },
};
</Skript>
<!-- Fügen Sie das Attribut „scoped“ hinzu, um CSS nur auf diese Komponente zu beschränken -->
<Stilbereich>
A {
  Farbe: #42b983;
}
</Stil>

In der zweiten Seitenkomponente twopage.vue müssen Sie die gespeicherte Nachricht herausnehmen:

sessionStorage.getItem('msg') ruft den Wert ab, der dem msg-Schlüssel entspricht.

<Vorlage>
  <div>
    Dies ist die zweite Seite<h2>{{ msg }}</h2>
    <router-link to="/">Ich möchte zurück</router-link>
  </div>
</Vorlage>

<Skript>
Standard exportieren {
  Daten() {
    zurückkehren {
      Nachricht: "",
    };
  },
  Methoden: {
    setmsg() {
        dies.msg = sessionStorage.getItem('msg');
    },
  },
  erstellt(){
      dies.setmsg()
  }
};
</Skript>

Verzeichnisstruktur:

Bildbeschreibung hier einfügen

Demo:

Ausgangszustand:

Bildbeschreibung hier einfügen

So ändern Sie den Inhalt des Eingabefelds:

Bildbeschreibung hier einfügen

Gehen Sie zur zweiten Seite:

Bildbeschreibung hier einfügen

Zusammenfassen

Dieser Artikel endet hier. Ich hoffe, er kann Ihnen helfen. Ich hoffe auch, dass Sie mehr Inhalten auf 123WORDPRESS.COM mehr Aufmerksamkeit schenken können!

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung der Verwendung des Stores in Vuex im Vue.js-Statusmanagement
  • Detaillierte Erklärung zur Überwachung von Änderungen in Variablen, die in $store in Vue-Komponenten definiert sind
  • Detaillierte Erläuterung der beiden Möglichkeiten der Vuex-Datenübertragung und der Lösung hierfür.$store undefined
  • Detaillierte Erläuterung der modularen Aufteilungspraxis von Store unter Vuex
  • Detaillierte Erklärung des Vuex Store-Quellcodes

<<:  Schritte zum Erstellen der MHA-Architekturbereitstellung in MySQL

>>:  Schnellstart-Tutorial zum Nginx-Dienst

Artikel empfehlen

JavaScript zum Erreichen eines einfachen Message Board-Falls

Verwenden Sie Javascript, um ein Message Board-Be...

Implementierungsfallcodeanalyse für dynamische und statische Trennung von Nginx

Trennung von statischer und dynamischer Dynamisch...

Grundlegendes Nutzungs-Tutorial zur IPTABLES-Firewall unter LINUX

Vorwort Für Produktions-VPS mit öffentlicher IP w...

Implementierung zum Zeichnen einer Audio-Wellenform mit wavesurfer.js

1. Sehen Sie sich die Renderings an Weiterleiten ...

Eine kurze Diskussion zum Problem von Daten mit Nullwerten in der MySQL-Datenbank

Standardmäßig akzeptiert MySQL das Einfügen von 0...

Neue Verwendung von watch und watchEffect in Vue 3

Inhaltsverzeichnis 1. Neue Verwendung der Uhr 1.1...

Zusammenfassung eines CSS-Codes, der die gesamte Site grau macht

Um den Märtyrern und Opfern des Kampfes gegen die...

SASS Style Programmierhandbuch für CSS

Da immer mehr Entwickler SASS verwenden, müssen w...

Der beste Weg, ein JAR-Paketprojekt unter einem Centos7-Server zu starten

Vorwort Jeder weiß, wie man ein JAR-Paket unter L...

Der Unterschied zwischen MySQL execute, executeUpdate und executeQuery

Die Unterschiede zwischen „execute“, „executeUpda...

Detaillierte Einführung in das MySQL-Installationstutorial unter Windows

Inhaltsverzeichnis 1. Einige Konzepte, die Sie vo...