Vuex implementiert einfache Warenkorbfunktion

Vuex implementiert einfache Warenkorbfunktion

In diesem Artikelbeispiel wird der spezifische Code von vuex zur Implementierung der Warenkorbfunktion zu Ihrer Information geteilt. Der spezifische Inhalt ist wie folgt

Das Dateiverzeichnis lautet wie folgt:

Einkaufswagen-Komponente

 <Vorlage>
    <div>
        <h1>vuex-shopWarenkorb</h1>
        <div Klasse="shop-listbox">
            <Shop-Liste />
        </div>
        <h2>Ausgewählte Produkte</h2>
        <div Klasse="shop-cartbox">
            <Warenkorb />
        </div>
    </div>
</Vorlage>

<Skript>
importiere shoList aus './shop-list'
importiere shopCart aus './shop-cart'

Standard exportieren {
  Name: 'Shop',
  Komponenten:
      'Shop-Liste': shoList,
      'Warenkorb': Einkaufswagen
  }
}
</Skript>

<!-- Fügen Sie das Attribut „scoped“ hinzu, um CSS nur auf diese Komponente zu beschränken -->
<Stilbereich>
</Stil>

Produktliste

 <Vorlage>
    <div Klasse="Shop-Liste">
        <Tabelle>
            <tr class="shop-listtitle">
                <td>Ich würde</td>
                <td>Name</td>
                <td>Preis</td>
                <td>Betrieb</td>
            </tr>
            <tr v-for = "Artikel in Shopliste" class="shop-listinfo" :key="item.id">
                <td>{{item.id}}</td>
                <td>{{Artikelname}}</td>
                <td>{{Artikelpreis}}</td>
                <td>
                    <button @click="addToCart(item)">Zum Warenkorb hinzufügen</button>
                </td>
            </tr>
        </Tabelle>
    </div>
</Vorlage>

<Skript>
importiere {mapGetters,mapActions} aus "vuex";
Standard exportieren {
    Name: "Shopliste",
    berechnet: {
        ...mapGetters({
                shopList:'getShopList',
            })
    },
    Methoden: {
        ...mapActions(['zum Warenkorb hinzufügen'])
    },
}
</Skript>

Ausgewählte Produktliste

 <Vorlage>
    <div Klasse="Shop-Liste">
        <Tabelle>
            <tr class="shop-listtitle">
                <td>Ich würde</td>
                <td>Name</td>
                <td>Preis</td>
                <td>Menge</td>
                <td>Betrieb</td>
            </tr>
            <tr v-for="Artikel in Warenkorbdaten" class="shop-listinfo" :key="item.id">
                <td>{{item.id}}</td>
                <td>{{Artikelname}}</td>
                <td>{{Artikelpreis}}</td>
                <td>{{Artikelnummer}}</td>
                <td><button class="shop-dele dele-btn" @click="deleteShop(item)">Löschen</button></td>
            </tr>
            <tr v-if="cartData.length <= 0">
                <td colspan="5">Keine Daten</td>
            </tr>
            <tr>
                <td colspan="2">Gesamt:{{totalNum}}</td>
                <td colspan="2">Gesamtpreis:{{totalPrice}}</td>
                <td><button class="dele-cart dele-btn" @click="clearCart">Warenkorb leeren</button></td>
            </tr>
        </Tabelle>
    </div>
</Vorlage>

<Skript>
importiere {mapGetters,mapActions} von 'vuex'
Standard exportieren {
    Name: "shopCart",
    Daten(){
        zurückkehren {
            
        }
    },
    berechnet: {
        ...mapGetters({
            Warenkorbdaten: 'addShopList',
            Gesamtanzahl: 'Gesamtanzahl',
            Gesamtpreis: 'Gesamtpreis'
        })
    },
    Methoden: {
        ...mapActions({
            Warenkorb löschen:'Warenkorb löschen',
            deleteShop:"deletToShop"
        })
    }
}
</Skript>

Vuex-Erstellung

npm install vuex --save, einen Vuex-Ordner erstellen, store.js im Ordner erstellen und Vuex einführen;

store.js

 Vue von „vue“ importieren
Vuex von „vuex“ importieren
Einkaufswagen aus „./modules/cart“ importieren

Vue.Verwenden(Vuex)

exportiere standardmäßig neuen Vuex.Store({
    Module:
        Warenkorb
    }
})

Erstellen Sie einen Modulordner „Module“, erstellen Sie darin ein Store-Modul, geben Sie es standardmäßig aus und führen Sie es in store.js ein.

Warenkorb.js

 konstanter Zustand = {
    shop_list: [{
        Ich würde: 11,
        Name: 'Schweinefleisch mit Fischgeschmack',
        Preis : 12
    }, {
            Ich würde: 22,
            Name: 'Kung Pao Chicken',
            Preis: 14
        }, {
            Ich würde: 34,
            Name: 'Geraspelte Kartoffeln',
            Preis: 10
        }, {
            Ich würde: 47,
            Name: 'Reis',
            Preis : 2
        }, {
            Ich würde: 49,
            Name: 'Ameisen zählen',
            Preis: 13
        }, {
            ID: 50,
            Name: 'Gebratener Speck mit Knoblauchsprossen',
            Preis: 15
        }],
        hinzufügen : []
}

const getter = {
    // Produktliste abrufen getShopList: state => state.shop_list,
    // Einkaufswagenliste abrufen addShopList: state => {
        // Die Methode map() gibt nach dem Aufruf der Funktion return state.add.map(({ id, num }) => { ein neues Array zurück, dessen Elemente die Werte der ursprünglichen Array-Elemente sind.
            let product = state.shop_list.find(n => n.id == id) // Die Methode find() gibt den Wert des ersten Elements des Arrays zurück, das den Test besteht (Beurteilung innerhalb der Funktion). Wenn kein Element die Bedingungen erfüllt, wird undefined zurückgegeben.
            if (product) {// Wenn das Produkt existiert return {// Gib Objekt...Produkt zurück,
                    Nummer
                }
            }
        })
    },
     // Gesamtzahl abrufen totalNum: (state, getters) => {
         sei total = 0
         getters.addShopList.map(n => { 
             Gesamtsumme += n.num
         })
         Rendite Gesamt
    },
    // Den Gesamtpreis berechnen totalPrice: (state, getters) => { 
        sei total = 0
        getters.addShopList.map(n => { 
            Gesamtsumme += n.Anz. * n.Preis
        })
        Rendite Gesamt
    }
},

const Aktionen = {
    // Zum Warenkorb hinzufügen addToCart({ commit},product) { 
        commit('Warenkorb hinzufügen', {
            ID: Produkt-ID
        })
    },
    // Einkaufswagen leeren clearToCart({ commit}) { 
        commit('Warenkorb löschen')
    },
    // Einzelnen Artikel löschen deleteToShop({ commit},product) { 
        commit('deletShop',Produkt)
    }
}

const Mutationen = {
    // Zum Warenkorb hinzufügen addCart(state, { id}){ 
        let Datensatz = Status.add.find(n => n.id == id)
        if (!record) {// Wenn das Produkt nicht im Warenkorb vorhanden ist state.add.push({// Produkt-ID hinzufügen,
                Anzahl: 1
            })
        } else { // Wenn das Produkt in den Warenkorb gelegt wurde, ändere die Menge record.num++
        }
    },
    // Einzelnen Artikel löschen deleteShop(state, product) { 
        Zustand.add.forEach((item,i) => { 
            if (item.id == product.id) { // Wenn das Produkt gefunden wurde state.add.splice(i,1)
            }
        })
    },
    // Warenkorb leeren clearCart(state) { 
        Zustand.add = []
    }
}

Standard exportieren {
    Zustand,
    Getter,
    Aktionen,
    Mutationen
} 

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Vuex implementiert einen einfachen Einkaufswagen
  • Implementierung einer Warenkorbfunktion basierend auf Vuex
  • Vuex implementiert kleine Einkaufswagenfunktion
  • Vuex implementiert das Hinzufügen, Reduzieren und Entfernen von Einkaufswagen
  • Vuex realisiert Warenkorbfunktion
  • Beispielcode für die Verwendung von Vuex zur eleganten Implementierung einer Warenkorbfunktion
  • Einfaches Beispiel einer Warenkorbfunktion, implementiert von vuex
  • Ich habe mit Vuex einen Beispielcode für eine H5-Einkaufswagenseite geschrieben

<<:  Detailliertes grafisches Tutorial zur Installation, Inbetriebnahme und Grundkonfiguration von MySQL unter der Windows-Version

>>:  Dockers flexible Implementierung zum Aufbau einer PHP-Umgebung

Artikel empfehlen

PostgreSQL-Materialisierte Ansichtsprozessanalyse

Dieser Artikel stellt hauptsächlich die Prozessan...

HTML-Tutorial, leicht zu erlernende HTML-Sprache

1. <body background=Bilddateiname bgcolor=Farb...

So verwenden Sie Nginx zum Proxy mehrerer Anwendungssites in Docker

Vorwort Was ist die Rolle eines Agenten? - Mehrer...

Beispiel für die Wertübertragung in einem HTML-Formular über die Get-Methode

Die google.html-Schnittstelle ist wie in der Abbil...

Nginx tp3.2.3 404 Problemlösung

Vor Kurzem habe ich Apache auf nginx umgestellt. ...

MySQL 8.0.12 Einfaches Installations-Tutorial

In diesem Artikel finden Sie das Installations-Tu...

Einführung, Installation und Verwendung von Hyper-V (detaillierte Abbildungen)

Vorwort: Als Gigant in der IT-Branche ist Microso...

Zusammenfassung der wichtigsten Wissenspunkte zur MySQL-Abfrageoptimierung

Vorwort Abfrageoptimierung ist nichts, was über N...

Eine kurze Diskussion über mehrere aufgetretene Browserkompatibilitätsprobleme

Hintergrund Das Lösen von Browserkompatibilitätsp...

Implementierung des Deployment-War-Package-Projekts mit Docker

Um War mit Docker bereitzustellen, müssen Sie ein...

Detaillierte Erklärung der XML-Syntax

1. Dokumentationsregeln 1. Groß-/Kleinschreibung b...