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

Vue ElementUI implementiert einen asynchronen Ladebaum

In diesem Artikelbeispiel wird der spezifische Co...

Lösung zur Definition der Mindestspannweite hat keine Auswirkung

Das Span-Tag wird häufig beim Erstellen von HTML-W...

JavaScript-Implementierung der Dropdown-Liste

In diesem Artikelbeispiel wird der spezifische Ja...

So verwenden Sie ECharts in WeChat Mini-Programmen mit uniapp

Heute verwenden wir Uniapp, um Echarts zur Anzeig...

Über das Problem der dynamischen Spleißen der SRC-Bildadresse von img in Vue

Werfen wir einen Blick auf das dynamische Spleiße...

Mehrere Möglichkeiten zum Wechseln zwischen Vue Tab und Cache-Seiten

Inhaltsverzeichnis 1. So wechseln Sie 2. Register...

Detaillierte Erklärung der Verwendung des Fuser-Befehls in Linux

beschreiben: fuser kann anzeigen, welches Program...

Auszeichnungssprache - Bildersetzung

Klicken Sie hier, um zum Abschnitt „HTML-Tutorial“...

Erfahrungsaustausch über die Priorität des Ladens von CSS-Stilen

Während der Projektentwicklung bin ich gestern auf...

Fallstricke basierend auf MySQL-Standardsortierregeln

Der Standardtyp varchar in MySQL ist case-insensi...