全网整合营销服务商

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

免费咨询热线: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 


相关文章: 移民网站制作流程,怎么看加拿大移民官网?  如何在沈阳梯子盘古建站优化SEO排名与功能模块?  重庆市网站制作公司,重庆招聘网站哪个好?  如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南  电商平台网站制作流程,电商网站如何制作?  宝塔建站助手安装配置与建站模板使用全流程解析  上海网站制作开发公司,上海买房比较好的网站有哪些?  网站好制作吗知乎,网站开发好学吗?有什么技巧?  建站之星官网登录失败?如何快速解决?  在线制作视频的网站有哪些,电脑如何制作视频短片?  ,柠檬视频怎样兑换vip?  如何快速搭建安全的FTP站点?  如何在Golang中指定模块版本_使用go.mod控制版本号  简易网站制作视频教程,使用记事本编写一个简单的网页html文件?  建站之星代理如何获取技术支持?  打鱼网站制作软件,波克捕鱼官方号怎么注册?  建站主机选购指南:核心配置优化与品牌推荐方案  如何在局域网内绑定自建网站域名?  建站主机是什么?如何选择适合的建站主机?  小说建站VPS选用指南:性能对比、配置优化与建站方案解析  网站制作企业,网站的banner和导航栏是指什么?  如何撰写建站申请书?关键要点有哪些?  如何续费美橙建站之星域名及服务?  建站主机服务器选购指南:轻量应用与VPS配置解析  建站主机如何选?高性价比方案全解析  C#如何使用XPathNavigator高效查询XML  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  PHP正则匹配日期和时间(时间戳转换)的实例代码  深圳网站制作的公司有哪些,dido官方网站?  香港服务器网站推广:SEO优化与外贸独立站搭建策略  香港服务器租用每月最低只需15元?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  音乐网站服务器如何优化API响应速度?  股票网站制作软件,网上股票怎么开户?  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?  如何在腾讯云服务器上快速搭建个人网站?  哈尔滨网站建设策划,哈尔滨电工证查询网站?  专业商城网站制作公司有哪些,pi商城官网是哪个?  建站之星收费标准详解:套餐费用及年费价格表一览  如何在阿里云服务器自主搭建网站?  教程网站设计制作软件,怎么创建自己的一个网站?  实例解析angularjs的filter过滤器  如何在万网自助建站中设置域名及备案?  如何做网站制作流程,*游戏网站怎么搭建?  Python多线程使用规范_线程安全解析【教程】  文字头像制作网站推荐软件,醒图能自动配文字吗?  济南专业网站制作公司,济南信息工程学校怎么样?  如何在IIS中新建站点并配置端口与IP地址?  高端智能建站公司优选:品牌定制与SEO优化一站式服务  如何在Golang中使用replace替换模块_指定本地或远程路径 

您的项目需求

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