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

Einrichten der React-Native-Umgebung und grundlegende Einführung

Umgebungsvorbereitung 1. Umweltkonstruktion React...

Tutorial zur Installation und Konfiguration von MySQL für Mac

In diesem Artikel finden Sie das MySQL-Installati...

So verwenden Sie ein HTML-Formular mit mehreren Beispielen

Neun einfache Beispiele analysieren die Verwendun...

$nextTick-Erklärung, die Sie auf einen Blick verstehen

Inhaltsverzeichnis 1. Funktionsbeschreibung 2. Üb...

So aktualisieren Sie die Ansicht synchron nach Datenänderungen in Vue

Vorwort Vor kurzem bin ich auf ein interessantes ...

Geplante vollständige MySQL-Datenbanksicherung

Inhaltsverzeichnis 1. MySQL-Datensicherung 1.1. m...

Eine benutzerfreundliche Alternative in Linux (Befehl fd)

Der Befehl fd bietet eine einfache und unkomplizi...

Meta Viewport ermöglicht die Vollbildanzeige von Webseiten auf dem iPhone

In meiner Verzweiflung dachte ich plötzlich: Wie i...

CSS3-Beispielcode zum Erreichen einer Elementbogenbewegung

So verwenden Sie CSS, um die Bogenbewegung von El...

Zwei Möglichkeiten zur Visualisierung von ClickHouse-Daten mit Apache Superset

Apache Superset ist ein leistungsstarkes BI-Tool,...

Detaillierte Erklärung von :key in VUE v-for

Wenn der Schlüssel nicht zum v-for-Tag hinzugefüg...