Vue实现购物车功能


Posted in Javascript onApril 27, 2017

效果图:

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>

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

Javascript 相关文章推荐
Jquery替换已存在于element上的event的方法
Mar 09 Javascript
Js 冒泡事件阻止实现代码
Jan 27 Javascript
JavaScript数组深拷贝和浅拷贝的两种方法
Apr 16 Javascript
javascript的alert box在java中如何显示多行
May 18 Javascript
node.js中的buffer.slice方法使用说明
Dec 10 Javascript
node.js中的fs.exists方法使用说明
Dec 17 Javascript
jqueryMobile使用示例分享
Jan 12 Javascript
JS关闭窗口时产生的事件及用法示例
Aug 20 Javascript
js创建对象几种方式的优缺点对比
Sep 28 Javascript
jQuery实现的淡入淡出与滑入滑出效果示例
Apr 18 jQuery
JS动画实现回调地狱promise的实例代码详解
Nov 08 Javascript
vue任意关系组件通信与跨组件监听状态vue-communication
Oct 18 Javascript
js轮播图透明度切换(带上下页和底部圆点切换)
Apr 27 #Javascript
Angular.js中定时器循环的3种方法总结
Apr 27 #Javascript
浅谈js使用in和hasOwnProperty获取对象属性的区别
Apr 27 #Javascript
微信小程序 wx:for的使用实例详解
Apr 27 #Javascript
微信小程序 动态传参实例详解
Apr 27 #Javascript
微信小程序 本地数据读取实例
Apr 27 #Javascript
js模仿微信朋友圈计算时间显示几天/几小时/几分钟/几秒之前
Apr 27 #Javascript
You might like
PHP、Nginx、Apache中禁止网页被iframe引用的方法
2020/10/01 PHP
jquery实现excel导出的方法
2013/04/04 Javascript
jquery text()方法取标签中的文本
2014/07/25 Javascript
javascript中的Base64、UTF8编码与解码详解
2015/03/18 Javascript
JavaScript编程的单例设计模讲解
2015/11/10 Javascript
javascript 用函数实现继承详解
2016/05/28 Javascript
jquery广告无缝轮播实例
2017/01/05 Javascript
JS对象深度克隆实例分析
2017/03/16 Javascript
Vuex和前端缓存的整合策略详解
2017/05/09 Javascript
js学习总结_轮播图之渐隐渐现版(实例讲解)
2017/07/17 Javascript
vue 组件 全局注册和局部注册的实现
2018/02/28 Javascript
nodejs取得当前执行路径的方法
2018/05/13 NodeJs
vue中Element-ui 输入银行账号每四位加一个空格的实现代码
2018/09/14 Javascript
详解vue开发中调用微信jssdk的问题
2019/04/16 Javascript
JS学习笔记之原型链和利用原型实现继承详解
2019/05/29 Javascript
Vue vm.$attrs使用场景详解
2020/03/08 Javascript
解决echarts图表使用v-show控制图表显示不全的问题
2020/07/19 Javascript
Python基于pycrypto实现的AES加密和解密算法示例
2018/04/10 Python
Python基于pyCUDA实现GPU加速并行计算功能入门教程
2018/06/19 Python
Caffe均值文件mean.binaryproto转mean.npy的方法
2018/07/09 Python
python实现多进程代码示例
2018/10/31 Python
python批量修改文件夹及其子文件夹下的文件内容
2019/03/15 Python
Python小白必备的8个最常用的内置函数(推荐)
2019/04/03 Python
使用Python Pandas处理亿级数据的方法
2019/06/24 Python
python栈的基本定义与使用方法示例【初始化、赋值、入栈、出栈等】
2019/10/24 Python
python实现将列表中各个值快速赋值给多个变量
2020/04/02 Python
html+js 实现markdown编辑器效果
2019/10/23 HTML / CSS
韩国家庭购物网上商店:Nsmall
2017/05/07 全球购物
信息系统专业个人求职信范文
2013/12/07 职场文书
机械专业求职信范文
2014/07/15 职场文书
幼儿园教师师德师风演讲稿:我自豪我是一名幼师
2014/09/10 职场文书
2015年社会治安综合治理工作总结
2015/04/10 职场文书
道歉信范文
2015/05/12 职场文书
中学总务处工作总结
2015/08/12 职场文书
《富饶的西沙群岛》教学反思
2016/02/16 职场文书
8g内存用python读取10文件_面试题-python 如何读取一个大于 10G 的txt文件?
2021/05/28 Python