vuex实现购物车功能,vuejs购物车

  vuex实现购物车功能,vuejs购物车

  这篇文章主要为大家详细介绍了某视频剪辑软件实现购物车功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  本文实例为大家分享了某视频剪辑软件实现购物车功能的具体代码,供大家参考,具体内容如下

  如图,需要有加入购物车的标识

  思路如下:点击购物车按钮时将商品的id,title,imgUrl(海报图),标志(标识符,标志非常重要,为以后复选框判断是否选中做参考)变成一个数组形式,推车,传入状态管理

  模板

  差异

  货车-货物-行动

  van-goods-action-icon icon= chat-o text=客服@click=onClickIcon /

  货车-货物-动作-图标icon=cart-o text=购物车@click=onClickIcon /

  货车-货物-动作-按钮

  类型=警告

  text=加入购物车

  @click=onClickButton

  /

  货车-货物-动作-按钮

  类型=危险

  text=立即购买

  @click=onClickButton

  /

  /凡-商品-行动

  /div

  /模板

  脚本

  从"万特"导入{ Toast };

  从"万特"导入{ GoodsAction,GoodsActionIcon,GoodsActionButton }。

  导出默认值{

  名称:"选项卡",

  data(){

  返回{

  }

  },

  道具:{

  id:字符串,

  当前:字符串,

  标题:字符串,

  imgUrl:字符串

  },

  组件:{

  【Toast.name】:吐司,

  【动作不错。姓名]:好行动,

  [GoodsActionIcon。name]:goodactionicon,

  [GoodsActionButton。name]:GoodsActionButton

  },

  方法:{

  onClickIcon() {

  吐司(点击图标);

  },

  onClickButton() {

  var cart={id:this.id,current:this.current,num:1,title:this.title,imgUrl:this.imgUrl,flag:true}

  这个store.commit(addCart ,Cart)

  吐司(已加入购物车);

  },

  },

  }

  /脚本

  风格

  /风格

  2.vuex如下

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

  从" vuex "导入状态管理

  从导入突变 mutations.js

  Vue.use(Vuex)

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

  状态:{

  购物车:[],

  钱:0,

  allchecked:true

  },

  突变,

  })

  导出默认值{,

  //判断是否已经加入过购物车,如果加入过,则该产品数量加一,若没有加入过,将产品加入手推车中

  添加购物车(状态,数据){

  for(var I=0;istate。推车。长度;i ){

  if(state.cart[i]).id==data.id){

  state.cart[i].数字=数据。数字

  返回

  }

  }

  state.cart.push数据)

  },

  //该函数为数字一

  addCartNum(状态,索引){

  state.cart[index].数字

  },

  //该函数为数字-1

  剑齿虎(状态,索引){

  if(state.cart[index].num==1){ return;}

  state.cart[index].数量-

  },

  }

  3.购物车

  思路如下:若没有产品则显示无产品,若有产品在购物车里,则可进行增删加减

  模板

  div class=bg

  div class=bgCart v-if=isGood

  div class=cartAd

  h3

  购物车

  /h3

  div v-if=select

  div class= admin @ click= on admin 管理/div

  /div

  div v-if=!选择

  div class=admin @click=onOk 完成/div

  /div

  /div

  van-checkbox-group v-model= result ref= checkbox group

  div class=cart v-for=(item,index) in cartList :key=index

  范-复选框:名称=项目。id class= checkbox checked-color= red v-model= item。标志 @ click=选择更改(项目。 id,item)

  /凡-复选框

  div class=box

  img class= img :src=基本URL项目。imgurl /

  div class= wraper

  div class= title"{ item。标题} }/div

  div class=容器

  div class= money @{ { item。当前} }/分区

  差异

  建@click=建(索引)

  jianAdj -/span

  /span

  span{{item.num}}/span

  span class= Jia @ click= add(index)

  jiaAdj /span

  /span

  /div

  /div

  /div

  /div

  /div

  /凡-复选框-组

  div class=order v-if=select

  van-submit-bar:price= get all button-text=提交订单

  van-checkbox v-model= all checked checked-color= red @ click= all order 全选/取消/凡-复选框

  /凡-提交-栏

  /div

  div class=order v-if=!选择

  van-submit-bar:price= get all button-text=删除@submit=del

  van-checkbox v-model= all checked checked-color= red @ click= all order 全选/取消/凡-复选框

  /凡-提交-栏

  /div

  /div

  div v-if=!好不好

  h3

  购物车

  /h3

  img src=./././static/img/cart.jpg/

  添加

  您还没有添加任何产品哦

  /span

  van-button round type=危险去逛逛/货车按钮

  /div

  底部/底部

  /div

  /模板

  脚本

  导入{

  复选框,

  复选框组

  }来自vant ;

  导入{

  提交栏

  }来自vant ;

  导入{

  纽扣

  }来自vant ;

  导出默认值{

  名称:"购物车",

  data() {

  返回{

  结果:[],

  目录列表:[],

  选择:真,

  钱:0,

  结果:[],

  baseUrl: this.common.baseUrl,

  全部选中:这个. store.state.allchecked,

  isGood:没错

  }

  },

  组件:{

  [SubmitBar.name]: SubmitBar,

  [Button.name]:按钮,

  [Checkbox.name]:复选框,

  [复选框组。名称]:复选框组,

  bottom: ()=import( ./组件/底部。vue’)

  },

  计算值:{

  getAll() {

  定义变量货币=0

  这个100美元商店。状态。推车。foreach(item={

  if (item.flag) {

  货币=(item.num * item.current) * 100

  }

  })

  还钱

  }

  },

  方法:{

  //选择单个复选框(非常重要)

  //由于我进来是使复选框全选,则在第一次点击的时候使得标志=假

  选择更改(我,项目){

  if (this.result.indexOf(i) -1) {

  var arrs=this。结果。过滤器(功能(项目){

  退货!=I;

  });

  this.result=arrs

  item.flag=false

  }否则{

  这个。结果。推(一);

  item.flag=true

  }

  //判断单个和全部,若单个全选,则这个10.25 $ store . state . all checked为真实的

  if (this.result.length this .$store.state.cart.length) {

  这个100美元商店。状态。全部勾选=假;

  this.allchecked=this .$ store。状态。全部勾选;

  }否则{

  这个100美元商店。状态。全部选中=真;

  this.allchecked=this .$ store。状态。全部勾选;

  }

  },

  //全选状态

  allOrder() {

  //如果选择状态为选中的时候,设置这个. store.state.allchecked=false变成未选中

  如果(这个. store.state.allchecked) {

  这个100美元商店。状态。推车。foreach(item={

  item.flag=false

  })

  这个。结果=[];

  这个100美元商店。状态。全部勾选=假;

  this.allchecked=this .$ store。状态。全部勾选;

  }否则{

  这个100美元商店。状态。推车。foreach(item={

  item.flag=true

  如果(这个。结果。(项目的索引。id)0){

  这个。结果。推(项。id);

  }

  })

  这个100美元商店。状态。全部选中=真;

  this.allchecked=this .$ store。状态。全部勾选;

  }

  },

  //数字

  添加(索引){

  这个store.commit(addCartNum ,index)

  },

  //数字减

  简(索引){

  这个store.commit(jianCartNum ,index)

  },

  //点击管理

  onAdmin() {

  this.select=false

  },

  //点击完成

  onOk() {

  this.select=true

  if(this.result.length==0){

  console.log(1)

  this.isGood=false

  }否则{

  console.log(this.result)

  }

  },

  //删除

  del() {

  if (this.result.length==this .$store.state.cart.length) {

  这个. store.state.cart.splice(0,this.result.length)

  this.result.splice(0,this.result.length)

  }否则{

  这个100美元商店。状态。推车。foreach(item={

  if (item.flag) {

  这个store.state.cart.splice(item,1)

  结果拼接(项目id,1)

  }

  })

  }

  }

  },

  已创建(){

  this.cartList=this .$store.state。购物车

  如果(这个. store.state.allchecked) {

  for(var I=0;我这个100美元商店。状态。推车。长度;i ) {

  这个. result.push(这个store.state.cart[i]。id)

  }

  }

  if(this.result.length==0){

  this.isGood=false

  }

  }

  }

  /脚本

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

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

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