用vuex的方法实现购物车业务

本文介绍了使用Vuex实现购物车的原理和具体步骤。首先,理解Vuex中方法的使用至关重要。接着,通过创建JSON数据并渲染商品列表,商品后面设置添加按钮。然后,将选择的商品存储到本地并在购物车页面展示。最后,实现购物车内的全选、单选、数量增减和总价计算等功能。
摘要由CSDN通过智能技术生成

一、 购物车的实现原理:

注意:在写购物车之前,我们需要知道vuex里的方法如何使用,若是不太清除方法的使用,可以看我之前的文章,其中有一章是介绍vuex的方法的使用和调用的!

1,首先,我们需要一个json数据,自己写或者找一个就可以。
2. 然后把数据渲染到页面,即为商品列表,在每一个商品后面加上一个加号,代表着点击添加商品就将该商品添加到购物车。
3. 其次,就是购物车内的操作,在此之前需要把数据存储到本地,好在购物车页面渲染点击获取的数据。
4. 最后,就是对数据进行全选,单选,加加减减及总价的操作。

二、购物车的具体操作

1、store文件中的index.js代码(即vuex操作)

import Vue from 'vue'
import Vuex from 'vuex'
import axios from 'axios'
//引入axios,需要下载
Vue.use(Vuex)

export default new Vuex.Store({
   
  state: {
   
    cartlist: [],//用于商品列表渲染的数据
    cartItem: JSON.parse(localStorage.getItem("carto")) || [],//存储到localStorage(本地存储),的数组
    delchecked: JSON.parse(localStorage.getItem("carto")) || false,
    //同步的全选的状态
    zong:JSON.parse(localStorage.getItem("zong")) ||0,
    //总价
    dan:JSON.parse(localStorage.getItem("dan")) ||0,
    //总件数
  },
  mutations: {
   
  //用于商品列表
    CARTLIST(state, item) {
   
      state.cartlist = item
    },
    //用于本地存储并进行去重操作
    CARTITEM(state, item) {
   
      var flg = false;
      state.cartItem.forEach(e => {
   
        if (e._id === item._id) {
   
          e.count++;
          flg = true;
        }
      });
      if (!flg) {
   
        item.count = 1;
        item.checked = false;
        state.cartItem.push(item)
      }
      localStorage.setItem("carto", JSON.stringify(state.cartItem))
    },
    //判断单选是否全选,同步全选
    ONCHANGE(state, item) {
   
      console.log(state.cartItem[0].checked)
      console.log(item);
      state.cartItem.forEach(e => {
   
        if (e._id === item.id) {
   //判断是否是选中的那个元素
          e.checked = item.checked;
          //改变存储中的checked的状态
        }
      });
      //同步全选状态
      state.delchecked = state.cartItem.every(e => {
   
        return e.checked 
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值