vue实现购物车案例

本文实例为大家分享了vue实现购物车的具体代码,供大家参考,具体内容如下

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>购物车案例</title>
  <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<style>
  *{
    padding: 0;
    margin:0
  }
  ul li{
    width: 1200px;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  li div,.total{
    display: inline-block;
    width:200px;
    height: 50px;
    line-height: 50px;
    text-align: center;
  }
  button{
    width: 60px;
    height: 40px;
    text-align: center;
    line-height: 40px;
  }

</style>
<body>

  <div id="app">
    <ul>
      <goodsitem
      v-for="item in goodslist"
      :item="item"
      :key="item.id"
      @onchange="(type)=>{handleCount(type,item)}"
      @ondelete="()=>{handleDelete(item.id)}">
      </goodsitem>
      <div class="total" style="padding-left: 113px">总价:{{total}}</div>
    </ul>
  </div>

</body>
<script>
  var computed={
    props:{
      count:{
         type:Number,
         require:true
      }
    },
    methods:{
      handleCount(type){
        this.$emit('onchange',type)
      }
    },
    template:`<div style="width:200px">
           <button @click="handleCount('sub')">-</button>
           <span>{{count}}</span>
           <button @click="handleCount('add')" >+</button>
         </div>

    `

  }
  var goodsitem={
    props:{
      item:{
        type:Object,
        require:true
      }
    },
    methods:{
      handleCount(type){
        this.$emit('onchange',type)
      },
      handleDelete(){
        this.$emit('ondelete')
      }
    },
    components:{
      computed
    },
    template:`<li>
         <div>{{item.goodsName}}</div>
         <div>{{item.price}}</div>
         <computed :count="item.count" @onchange="handleCount"></computed>
         <div>{{item.sum}}</div>
         <div><button @click="handleDelete">删除</button></div>
         </li>
         `
  }

  var app=new Vue({
    el:"#app",
    data:{
      goodslist:[{
        id:1,
        goodsName:"小可爱",
        price:100,
        count:1,
        sum:100
      },{
        id:2,
        goodsName:"小可爱",
        price:200,
        count:2,
        sum:400
      },{
        id:3,
        goodsName:"小可爱",
        price:300,
        count:3,
        sum:900
      },{
        id:4,
        goodsName:"小可爱",
        price:400,
        count:1,
        sum:400
      },
      ]
    },
    methods:{
      handleCount(type,item){
        if(type=='add'){
          item.count+=1
        }else{
          if(item.count==1){
            this.handleDelete(item.id)
            return
            }
          item.count-=1
        }
        item.sum=item.count*item.price
      },
      handleDelete(id){
        return this.goodslist=this.goodslist.filter((item)=>{
          return id!=item.id
        })
      }
    },
    computed:{
      total(){
        return this.goodslist.reduce((total,item)=>{
           return total+=item.sum
        },0)
      }
    },
    components:{
      goodsitem
    }
  })
</script>
</html>

实现效果图:

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

(0)

相关推荐

  • vue实现购物车功能(商品分类)

    本文实例为大家分享了vue实现购物车功能的具体代码,供大家参考,具体内容如下 new Vue({ el: "#app", data: { cIndex: 0, lists: [ { title: "推荐商品", goods: [ { id: 0, img: './images/goods.png', name: '散称樱桃1', price: '10.00', num: 0 }, { id: 1, img: './images/goods.png', name: '

  • 基于Vuejs实现购物车功能

    本文实例为大家分享了Vuejs购物车实现代码,供大家参考,具体内容如下 html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>我的vue购物车</title> <link rel="stylesheet" href="css/bootstrap.min.css&q

  • Vue实现购物车功能

    效果图: 代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.0.2/css/bootstrap.min.css" rel="external nofollow" /> &l

  • vue实现购物车选择功能

    使用vue制作一个购物车功能,只是一个测试版本,注重的是功能实现,界面并没有做好,数据也是模拟数据等 不说那么多,直接上代码 <template> <div id="app"> 全选<input type="checkbox" v-model="checkall" @change="check_all()"> <div v-for="(item,index) in mylis

  • vue实现淘宝购物车功能

    本文实例为大家分享了vue实现淘宝购物车的具体代码,供大家参考,具体内容如下 淘宝购物车功能,效果如下图 非常简单的逻辑,没有做代码的封装,代码如下 <div class="list-container"> <div class="top-ops"> <div> <img src="../../../static/images/HomeRecommendShopInfoAdress@2x.png" alt

  • 基于vue.js实现购物车

    本文实例为大家分享了vue.js实现购物车的具体代码,供大家参考,具体内容如下 template <template> <div class="all"> <div class="head"> <span>购物车</span> </div> <ul class="menu"> <li class="li"> <input ty

  • vue.js实现简单购物车功能

    本文实例为大家分享了vue.js实现简单购物车的具体代码,供大家参考,具体内容如下 这次我将给大家带来一个vue.js实现购物车的小项目,如有不足请严厉指出. 购物车功能有:全选和选择部分商品,选中商品总价计算,商品移除,以及调整购买数量等功能. js主要有以下方法 加函数,减函数,手动修改数量判断库存函数,总价格计算函数,单选事件,全选事件,一共分为6个事件 具体效果如下图 代码在这里 main.js 'use strict' var app = new Vue({ el: '#app', d

  • vuejs手把手教你写一个完整的购物车实例代码

    由于我们公司是主营业务是海淘,所以每个项目都是类似淘宝天猫之类的商城,那么购物车就是一个重点开发功能模块.介于之前我都是用jq来写购物车的,这次就用vuejs来写一个购物车.下面我就从全选,数量控制器,运费,商品金额计算等方法来演示一下一个能用在实际场景的购物车是怎么做出来的以及记录一下这次用vuejs踩过的坑. 1.一层数据结构-全选 下面这段代码和vuejs官网里面checkbox绑定很像.不明白的可以直接上vuejs官网看看. <!DOCTYPE html> <html lang=

  • vue实现商城购物车功能

    本文实例为大家分享了vue实现商城购物车功能的具体代码,供大家参考,具体内容如下 首先,先上最终的效果图 效果并不是很好看,但是这不是重点. 首先,我们先看下布局: <template> <div class="shopcar" id="demo04"> <div class="header-title"> <h3>购物车</h3> </div> <div class=

  • vue实现购物车的监听

    利用vue简单实现购物车的监听,供大家参考,具体内容如下 主要运用的vue的监听,有兴趣的可以看看实现过程 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>利用vue实现对购物车的监听</title> <script src="../vue.js"></script> <style type=&

随机推荐