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

Analyse des Remote-Debuggings und des Timeout-Betriebsprinzips von Webdiensten

Remote-Debugging von Webdiensten In .NET ist die ...

js, um einen simulierten Einkaufszentrumsfall zu erreichen

Freunde, die HTML-, CSS- und JS-Frontend lernen, ...

Das Balkendiagramm von Vue + Echart realisiert Statistiken zu Epidemiedaten

Inhaltsverzeichnis 1. Installieren Sie zuerst ech...

Detaillierte Erklärung, wie Angular mit unerwarteten Ausnahmefehlern umgeht

Vorne geschrieben Unabhängig davon, wie gut der C...

Gängige Stile von CSS-Animationseffekten

Animation Definieren Sie eine Animation: /*Legen ...

Eine einfache Möglichkeit, das Passwort in MySQL 5.7 zu ändern

Dies ist ein offizieller Screenshot. Nach der Ins...

Detaillierte Erläuterung des Apache SkyWalking-Alarmkonfigurationshandbuchs

Apache SkyWalking Apache SkyWalking ist ein Tool ...