全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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" />
</head>
<body>

  <div id="app" class="container">
    <table class="table">
      <thead>
        <tr>
          <th>产品编号</th>
          <th>产品名字</th>
          <th>购买数量</th>
          <th>产品单价</th>
          <th>产品总价</th>
          <th>操作</th>
        </tr>
      </thead>
      <tbody>
        <tr v-for="(item , index) in message">
          <td @click="jia(index)">{{item.id}}</td>
          <td>{{item.name}}</td>
          <td>
            <button type="button" class="btn tn-primary" @click="subtract(index)">-</button>
            <input type="text" v-model="item.quantity">
            <button type="button" class="btn tn-primary" @click="add(index)">+</button>
          </td>
          <td>{{item.price | filtermoney}}</td>
          <!--<td>{{arr[index].one}}</td>-->
          <td>{{item.price*item.quantity | filtermoney}}</td>
          <td>
            <button type="button" class="btn btn-danger" @click="remove(index)">移除</button>
          </td>
        </tr>
        <tr>
          <td>总购买价  
          </td>
          <td>
            {{animatenum | filtermoney}}
          </td>
          <td>总购买数量
          </td>
          <td>

          </td>
          <td colspan="2">
            <button type="button" class="btn btn-danger" @click="empty()">清空购物车</button>
          </td>
        </tr>
      </tbody>
    </table>

    <p v-if="message.length===0">您的购物车为空</p>
  </div>
  <script src="https://unpkg.com/tween.js@16.3.4"></script>
  <script src="https://cdn.bootcss.com/vue/2.2.3/vue.min.js"></script>
  <script>
   var vm=new Vue({
   el:"#app",
   data:{
    totalPrice:0,
    animatenum:0,
    message:[
    {
        id: 007,
        name: 'iphone5s',
        quantity: 3,
        price: 4000
     },{
        id: 1340,
        name: 'iphone5',
        quantity: 9,
        price: 3000
     },{
        id: 7758,
        name: 'imac',
        quantity: 4,
        price: 7000
     },{
        id: 2017,
        name: 'ipad',
        quantity: 5,
        price: 6000
      }
    ]
   },
   watch:{
    toComput2:function(newValue,oldValue){
    this.tween(newValue,oldValue);
    }
   },
   computed:{
    //计算总金额
    toComput2:function(){
    var vm=this;
    //每次进来要重置总金额
    vm.totalPrice=0;
    this.message.forEach(function(mess){
     vm.totalPrice+=parseInt(mess.price*mess.quantity);
    })
    return this.totalPrice;
    }
   },
   filters:{
    filtermoney:function(value){
    return '¥'+value ;
    }
   },
   mounted:function(){ 
    this.tween('97000','0');
   },
   methods:{
    //计算总数的方法为什么写在methods里面就不行?
    toComput:function(){
    var vm=this;
    vm.message.forEach(function(mess){
     vm.totalPrice+=parseInt(mess.price*mess.quantity);
    })
   return vm.totalPrice;
    },
    add:function(index){
    var vm=this;
    vm.message[index].quantity++;
    },
    subtract:function(index){
    var vm=this;
    vm.message[index].quantity--;
    if(vm.message[index].quantity<=0){
     if (confirm("你确定移除该商品?")) { 
        vm.message.splice(index,1)
      } 
    }

    },
    remove:function(index){
    var vm=this;
    if (confirm("你确定移除该商品?")) { 
        vm.message.splice(index,1)
      } 
    },
    empty:function(){
    var vm=this;
    vm.message.splice(0,vm.message.length);
    },
    jia:function(index){
    var vm=this;
    vm.arr[index].one++;
    },
    tween:function(newValue,oldValue){
   var vm=this;
   var twen=new TWEEN.Tween({animatenum:oldValue});
   function animate() {
     requestAnimationFrame(animate);  
     TWEEN.update(); 
   };
   twen.to({animatenum:newValue},750);
   twen.onUpdate(function(){
   //toFixed();保留几位小数
   vm.animatenum = this.animatenum.toFixed();
   })
   twen.start();
   animate();
  }
   }
   });

  </script> 
</body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# vue实现购物车  # vue.js实现购物车  # vue  # 实现购物车结算  # 基于Vuejs实现购物车功能  # Vuejs实现购物车功能  # vue实现商城购物车功能  # vuex实现的简单购物车功能示例  # Vue实现购物车详情页面的方法  # vue实现购物车小案例  # vue 实现购物车总价计算  # vue.js实现简单购物车功能  # vue实现购物车功能(亲测可用)  # 前端Vue学习之购物车项目实战记录  # 移除  # 购物车  # 该商品  # 总金额  # 您的  # 几位  # 写在  # 清空  # 为空  # click  # item  # td  # message  # index  # table  # container  # app  # thead  # tbody  # tr 


相关文章: 建站之星安装模板失败:服务器环境不兼容?  ,网站推广常用方法?  建站之星备案流程有哪些注意事项?  网站设计制作公司地址,网站建设比较好的公司都有哪些?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  如何快速登录WAP自助建站平台?  建站之星后台管理系统如何操作?  已有域名和空间如何搭建网站?  高性价比服务器租赁——企业级配置与24小时运维服务  建站之星手机一键生成:多端自适应+小程序开发快速建站指南  c++怎么用jemalloc c++替换默认内存分配器【性能】  北京企业网站设计制作公司,北京铁路集团官方网站?  国美网站制作流程,国美电器蒸汽鍋怎么用官方网站?  如何高效完成独享虚拟主机建站?  如何选择域名并搭建高效网站?  宝塔新建站点为何无法访问?如何排查?  制作公司内部网站有哪些,内网如何建网站?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  已有域名如何快速搭建专属网站?  油猴 教程,油猴搜脚本为什么会网页无法显示?  建站主机是什么?如何选择适合的建站主机?  如何在自有机房高效搭建专业网站?  建站之星备案是否影响网站上线时间?  php8.4新语法match怎么用_php8.4match表达式替代switch【方法】  建站之星如何配置系统实现高效建站?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  高端企业智能建站程序:SEO优化与响应式模板定制开发  已有域名能否直接搭建网站?  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  制作国外网站的软件,国外有哪些比较优质的网站推荐?  香港代理服务器配置指南:高匿IP选择、跨境加速与SEO优化技巧  网页设计与网站制作内容,怎样注册网站?  官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站  教育培训网站制作流程,请问edu教育网站的域名怎么申请?  高配服务器限时抢购:企业级配置与回收服务一站式优惠方案  小自动建站系统:AI智能生成+拖拽模板,多端适配一键搭建  怎么用手机制作网站链接,dw怎么把手机适应页面变成网页?  如何快速搭建安全的FTP站点?  高端网站建设与定制开发一站式解决方案 中企动力  天津个人网站制作公司,天津网约车驾驶员从业资格证官网?  企业网站制作费用多少,企业网站空间一般需要多大,费用是多少?  广州商城建站系统开发成本与周期如何控制?  小说建站VPS选用指南:性能对比、配置优化与建站方案解析  视频网站制作教程,怎么样制作优酷网的小视频?  网站制作免费,什么网站能看正片电影?  郑州企业网站制作公司,郑州招聘网站有哪些?  建站之星代理商如何保障技术支持与售后服务?  建站主机助手选型指南:2025年热门推荐与高效部署技巧  ,sp开头的版面叫什么?  Swift中循环语句中的转移语句 break 和 continue 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。