vue购物车功能怎么实现,vuex购物车思路

  vue购物车功能怎么实现,vuex购物车思路

  这篇文章主要为大家详细介绍了状态管理实现简单的购物车功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  本文实例为大家分享了状态管理实现购物车功能的具体代码,供大家参考,具体内容如下

  文件目录如下:

  购物车组件

  模板

  差异

  h1 vuex-购物车/h1

  div class=商店列表框

  购物清单/

  /div

  氘已选商品/h2

  div class=商店纸盒

  购物车/

  /div

  /div

  /模板

  脚本

  从导入shoList ./购物清单

  从导入购物车。/购物车

  导出默认值{

  名称:商店,

  组件:{

  购物清单:购物清单,

  "购物车":购物车

  }

  }

  /脚本

  !-添加"限定范围"属性以将半铸钢钢性铸铁(Cast Semi-Steel)仅限制到此组件-

  样式范围

  /风格

  商品列表

  模板

  div class=购物清单

  桌子

  商店列表标题

  tdid/td

  任务描述名称/td

  任务描述价格/td

  任务描述操作/td

  /tr

  tr v-for=商店列表中的项目 class= shop-listinfo :key= item。id

  td{{item.id}}/td

  td{{item.name}}/td

  td{{item.price}}/td

  任务描述

  button @click=addToCart(item)加入购物车/按钮

  /td

  /tr

  /表格

  /div

  /模板

  脚本

  从" vuex "导入{mapGetters,映射操作}。

  导出默认值{

  名称:商店列表,

  计算值:{

  .mapGetters({

  商店列表:获取商店列表,

  })

  },

  方法:{

  .mapActions([addToCart])

  },

  }

  /脚本

  选中商品列表

  模板

  div class=购物清单

  桌子

  商店列表标题

  tdid/td

  任务描述名称/td

  任务描述价格/td

  任务描述数量/td

  任务描述操作/td

  /tr

  tr v-for=购物车数据中的项目 class= shop-listinfo :key= item。id

  td{{item.id}}/td

  td{{item.name}}/td

  td{{item.price}}/td

  td{{item.num}}/td

  TD button class= shop-dele dele-BTN @ click= deleteShop(item)删除/button/td

  /tr

  tr v-if=cartData.length=0

  任务描述列span=5 暂无数据/td

  /tr

  tr

  任务描述列span=2 总数:{{totalNum}}/td

  任务描述列span=2 总价格:{ {总价格}}/td

  TD按钮class= dele-cart dele-BTN @ click=清除购物车清空购物车/button/td

  /tr

  /表格

  /div

  /模板

  脚本

  从" vuex "导入{mapGetters,mapActions}

  导出默认值{

  名称:"购物车",

  data(){

  返回{

  }

  },

  计算值:{

  .mapGetters({

  cartData:addShopList ,

  总数:总数,

  总价:总价

  })

  },

  方法:{

  .地图操作({

  clear cart:“clearToCart”,

  删除商店:"删除商店"

  })

  }

  }

  /脚本

  vuex 创建

  新公共管理安装vuex -保存,创建状态管理文件夹,在文件夹中创建store.js,引入状态管理

  商店。射流研究…

  从“vue”导入某视频剪辑软件

  从" vuex "导入状态管理

  从导入购物车。/模块/购物车

  Vue.use(Vuex)

  导出默认的新Vuex .商店({

  模块:{

  手推车

  }

  })

  建立一个模块文件夹模块,里面创建创建当个商店模块,然后默认输出,在商店。射流研究…中引入;

  cart.js

  常量状态={

  商店列表:[{

  id: 11,

  名称: 鱼香肉丝,

  价格:12

  }, {

  id: 22,

  名称: 宫保鸡丁,

  价格:14英镑

  }, {

  id: 34,

  名称: 土豆丝,

  价格:10英镑

  }, {

  id: 47,

  名称: 米饭,

  价格:2英镑

  }, {

  id: 49,

  名称: 蚂蚁上数,

  价格:13英镑

  }, {

  id: 50,

  名称: 腊肉炒蒜薹,

  价格:15英镑

  }],

  添加:[]

  }

  const getters={

  //获取商品列表

  getshop list:state=state。shop _ list,

  //获取购物车列表

  addShopList: state={

  //map()方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值

  return state.add.map(({ id,num })={

  让产品=状态。购物清单。find(n=n . id==id)//find()方法返回通过测试(函数内判断)的数组的第一个元素的值,如果没有符合条件的元素返回不明确的

  if (product) {//如果存在该商品

  return {//返回对象

  .产品,

  数字

  }

  }

  })

  },

  //获取总数量

  totalNum: (state,getters)={

  让总数=0

  getters.addShopList.map(n={

  总计=数量

  })

  退货总额

  },

  //计算总价格

  totalPrice: (state,getters)={

  让总数=0

  getters.addShopList.map(n={

  总计=数量*价格

  })

  退货总额

  }

  },

  常量操作={

  //加入购物车

  addToCart({ commit},product) {

  提交( addCart ,{

  id:产品编号

  })

  },

  //清空购物车

  clearToCart({ commit}) {

  提交(“clearCart”)

  },

  //删除单个物品

  deletToShop({ commit},product) {

  提交("删除商店",产品)

  }

  }

  常量突变={

  //加入购物车

  addCart(state,{ id}){

  让记录=状态。补充。find(n=n . id==id)

  如果(!记录){//如果购物车中不存在该商品

  state.add.push({//追加商品

  id,

  数字:1

  })

  } else { //如果商品已经加入购物车,则改变数量

  记录号

  }

  },

  //删除单个物品

  删除商店(状态,产品){

  state.add.forEach((item,i)={

  if (item.id==product.id) {//如果找到该商品

  状态添加拼接(一,1)

  }

  })

  },

  //清空购物车

  清仓车(州){

  state.add=[]

  }

  }

  导出默认值{

  状态,

  吸气剂,

  行动,

  突变

  }

  以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: