vue编写简单的购物车功能


Posted in Vue.js onJanuary 08, 2021

使用vue写出简单的购物车,供大家参考,具体内容如下

vue编写简单的购物车功能

代码:

// An highlighted block
<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <title>Document</title>
 <style>
  .cl{
   border: 1px solid black;
   width: 300px;
   margin: 30px;
   padding: 15px;
  }
 </style>
</head>
<body>
 <div id="app">
  <div class="cl" v-for="(item,index) in items">
   <h4>{{item.sname}}</h4>
   <button @click="item.sum==0?item.sum==0:item.sum--">-</button>
   <span>{{item.sum}}</span>
   <button @click="item.sum++">+</button>
   <span>{{item.sprice}}元/斤</span>
  </div>

  <table>
   <tr>
    <th>选择</th>
    <th>商品名</th>
    <th>商品数量</th>
    <th>商品价格</th>
   </tr>
   <tr v-for="(item,index) in items">
    <td><input type="checkbox" :checked="item.isSelect" @click="item.isSelect=!item.isSelect"></td>
    <td>{{item.sname}}</td>
    <td>{{item.sum}}</td>
    <td>{{item.sprice*item.sum}}</td>
   </tr>
   <tr>
    <td><input type="checkbox" @click="selectProduct(isSelectAll)" :checked="isSelectAll">全选</tf>
    <td>合计</tf>
    <td>{{total.totalNum}}</tf>
    <td>{{total.totalPrice}}</tf>
   </tr>
  </table>
 </div>
 <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
 <script>
  new Vue({
   el:'#app',
   data:{
    items:[
     {
      'sname':'苹果',
      'sum':1,
      'sprice':'10',
     },
     {
      'sname':'香蕉',
      'sum':1,
      'sprice':'12',
     },
     {
      'sname':'橘子',
      'sum':1,
      'sprice':'8',
     },
    ]
   },
   methods:{
    selectProduct:function(_isSelect){
     for(var i=0 ,len=this.items.length;i<len;i++){
      this.items[i].isSelect=!_isSelect;
     }
    },
    
   },
   computed:{
    isSelectAll:function(){
     return this.items.every(function(val){return val.isSelect})
    },
     total:function(){
     var prolist = this.items.filter(function(val){return val.isSelect});
     totalpri = 0;
     totalnum = 0;
     for (var i = 0;i<prolist.length;i++){
      totalpri+=prolist[i].sprice*prolist[i].sum;
      totalnum+=prolist[i].sum
     }
     
     return{totalNum:totalnum,totalPrice:totalpri}
    }
   },
   mounted:function(){
    var _this=this;
    this.items.map(function(item){
     _this.$set(item,'isSelect',false)
    })
   }
  })
 </script>
</body>
</html>

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

Vue.js 相关文章推荐
vue+iview分页组件的封装
Nov 17 Vue.js
vue3.0实现点击切换验证码(组件)及校验
Nov 18 Vue.js
Vue.js桌面端自定义滚动条组件之美化滚动条VScroll
Dec 01 Vue.js
Vue 实现一个简单的鼠标拖拽滚动效果插件
Dec 10 Vue.js
vue中activated的用法
Jan 03 Vue.js
如何在 Vue 表单中处理图片
Jan 26 Vue.js
vite2.0+vue3移动端项目实战详解
Mar 03 Vue.js
如何理解Vue简单状态管理之store模式
May 15 Vue.js
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
May 18 Vue.js
Vue组件更新数据v-model不生效的解决
Apr 02 Vue.js
vue自定义右键菜单之全局实现
Apr 09 Vue.js
vue项目配置sass及引入外部scss文件
Apr 14 Vue.js
解决vue使用vant轮播组件swipe + flex时文字抖动问题
Jan 07 #Vue.js
vuex的使用和简易实现
Jan 07 #Vue.js
vue watch监控对象的简单方法示例
Jan 07 #Vue.js
vue.js watch经常失效的场景与解决方案
Jan 07 #Vue.js
通过vue.extend实现消息提示弹框的方法记录
Jan 07 #Vue.js
如何在vue-cli中使用css-loader实现css module
Jan 07 #Vue.js
vue3中轻松实现switch功能组件的全过程
Jan 07 #Vue.js
You might like
PHP分页类集锦
2014/11/18 PHP
ext监听事件方法[初级篇]
2008/04/27 Javascript
JavaScript 读取元素的CSS信息的代码
2010/02/07 Javascript
javascript中最常用的继承模式 组合继承
2010/08/12 Javascript
左右悬浮可分组的网站QQ在线客服代码(可谓经典)
2012/12/21 Javascript
jquery 操作两个select实现值之间的互相传递
2014/03/07 Javascript
每天一篇javascript学习小结(RegExp对象)
2015/11/17 Javascript
Javascript中判断一个值是否为undefined的方法详解
2016/09/28 Javascript
Jquery Easyui日历组件Calender使用详解(23)
2016/12/18 Javascript
node.js平台下利用cookie实现记住密码登陆(Express+Ejs+Mysql)
2017/04/26 Javascript
vue学习笔记之v-if和v-show的区别
2017/09/20 Javascript
jquery+css3实现熊猫tv导航代码分享
2018/02/12 jQuery
全面了解JavaScript的作用域链
2019/04/03 Javascript
nodejs中实现修改用户路由功能
2019/05/24 NodeJs
JavaScript事件冒泡机制原理实例解析
2020/01/14 Javascript
[28:42]Ti4正赛VG vs NEWBEE1
2014/07/19 DOTA
[59:07]海涛为你详解DOTA2新版本“贤哲秘契”
2014/11/22 DOTA
python文件和目录操作函数小结
2014/07/11 Python
彻底搞懂Python字符编码
2018/01/23 Python
Python使用pyyaml模块处理yaml数据
2020/04/14 Python
Python pip使用超时问题解决方案
2020/08/03 Python
学习Python需要哪些工具
2020/09/04 Python
使用CSS3制作一个简单的进度条(demo)
2017/05/23 HTML / CSS
HTML5实现签到 功能
2018/10/09 HTML / CSS
英国Amara家居法国网站:家居装饰,现代装饰和豪华礼品
2016/12/15 全球购物
购买200个世界上最好的内衣品牌:Bare Necessities
2017/02/11 全球购物
高性能装备提升营地:Kammok
2019/02/27 全球购物
父亲追悼会答谢词
2014/01/17 职场文书
小学教师培训感言
2014/02/11 职场文书
创建文明学校实施方案
2014/03/11 职场文书
职称评定自我鉴定
2014/03/18 职场文书
公务员诚信承诺书
2014/05/26 职场文书
学校督导评估方案
2014/06/10 职场文书
药品营销专业毕业生自荐信
2014/07/02 职场文书
实施意见格式范本
2015/06/05 职场文书
MySQL 常见的数据表设计误区汇总
2021/06/07 MySQL