vue实现购物车加减


Posted in Javascript onMay 30, 2020

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

通常我们会在模板中绑定表达式,模板是用来描述视图结构的。如果模板中的表达式存在过多的逻辑,模板会变得臃肿不堪,维护变得非常困难。因此,为了简化逻辑,当某个属性的值依赖于其他属性的值时,我们可以使用计算属性。

那么什么是计算属性呢?

计算属性就是当其依赖属性的值发生变化是,这个属性的值会自动更新,与之相关的DOM部份也会同步自动更新。
实现的效果图如下:

vue实现购物车加减

我是使用了bootstrap跟Vue去完成这个效果的。

首先导入包:

<link rel="stylesheet" href="css/bootstrap.css" />
<script type="text/javascript" src="js/vue.js" ></script>

接着是布局样式:

<div id="app">
 <div class="container">
 <table class="table table-bordered table-hover"> 
 <tr>
 <td>
  <input type="checkbox" v-model="checkAll" @click="selectAll" />
 </td>
 <td>
 商品名称
 </td>
 <td>
 商品价格
 </td>
 <td>
 商品数量
 </td>
 <td>
 商品总额
 </td>
 <td>
 操作
 </td>
 </tr>
  <tr v-for="(item,index) in listInfo">
  <td>
  <input type="checkbox" :value="item.id" v-model="checkItem" @change="selectOne" />
  </td>
 <td>{{item.shopName}}</td>
 <td>{{item.shopPrice}}</td>
 <td>
 <button class="btn btn-default" @click="reduce(index)">-</button>
 <input type="text" v-model="item.shopCount" />
 <button class="btn btn-default" @click="add(index)">+</button>
 </td>
 <td>
 {{item.shopPrice*item.shopCount}}
 </td>
 <td>
 <button class="btn btn-warning" @click="del(index)">删除</button>
 </td>
 </tr> 
 </table>
 <p class="text-right">
 金额总计:{{sum}}
 </p>
 <p class="text-right">
 商品数量:{{count}}
 </p>
 <hr />
 <form>
 <div class="form-group">
 <input class="form-control" placeholder="商品名称" v-model="shopName" />
 </div>
 <div class="form-group">
 <input class="form-control" placeholder="商品价格" v-model = "shopPrice"/>
 </div>
 <div class="form-group">
 <button class="btn btn-primary" type="button" @click="addInfo">增加</button>
 </div>
 </form>
 </div>
</div>

最后是方法:

<script>
 new Vue({
 el:"#app",
 data:{
 listInfo:[
 {id:1,shopName:"男装1",shopPrice:1000,shopCount:0},
 {id:2,shopName:"男装2",shopPrice:2000,shopCount:0},
 {id:3,shopName:"男装3",shopPrice:3000,shopCount:0},
 {id:4,shopName:"男装4",shopPrice:4000,shopCount:0},
 {id:5,shopName:"男装5",shopPrice:5000,shopCount:0},
 ],
 shopName:"",
 shopPrice:"",
 checkItem:[],
 checkAll:false
 },
 methods:{
 add:function(index){
 this.listInfo[index].shopCount++
 
 },
 reduce:function(index){
 if(this.listInfo[index].shopCount<=0){
 this.listInfo[index].shopCount = 0
 }else {
 this.listInfo[index].shopCount--
 }
 
 },
 del:function(index){
  this.listInfo.splice(index,1)
 },
 addInfo:function(){
// alert(1)
 
 var obj = {
 id:this.listInfo.length+1,
 shopName:this.shopName,
 shopPrice:this.shopPrice,
 shopCount:0
 }
 console.log(obj)
 this.listInfo.push(obj) 
 },
 
 selectAll:function(){
 this.checkItem = []
 if(!this.checkAll){
 for (var i=0;i<this.listInfo.length;i++) {
 this.checkItem.push(this.listInfo[i].id)
 }
 }else {
 this.checkItem = []
 this.checkAll = false
 }
 },
 selectOne(){
 console.log(this.checkItem)
 if(this.checkItem.length == this.listInfo.length){
 this.checkAll = true
 }else {
 this.checkAll = false
 }
 }
 },
 computed:{
 sum(){
 var total = 0
 for (var i=0;i<this.listInfo.length;i++) {
 total+=parseFloat(this.listInfo[i].shopPrice)*parseFloat(this.listInfo[i].shopCount)
 }
 return total 
 },
 count:function(){
 var total = 0
 for (var i=0;i<this.listInfo.length;i++) {
 total+=parseInt(this.listInfo[i].shopCount)
 }
 return total
 }
 }
 })
</script>

通过以上的代码即可实现简单的购物车加减与增加删除!

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

Javascript 相关文章推荐
不用AJAX和IFRAME,说说真正意义上的ASP+JS无刷新技术
Sep 25 Javascript
js 实现无缝滚动 兼容IE和FF
Jul 15 Javascript
JQuery中使用ajax传输超大数据的解决方法
Jul 14 Javascript
Jquery修改页面标题title其它JS失效的解决方法
Oct 31 Javascript
js实现纯前端的图片预览
Apr 27 Javascript
jQuery实现的checkbox级联选择下拉菜单效果示例
Dec 26 Javascript
jquery easyui DataGrid简单示例
Jan 23 Javascript
angular 基于ng-messages的表单验证实例
May 04 Javascript
浅谈JS对html标签的属性的干预以及对CSS样式表属性的干预
Jun 25 Javascript
JavaScript实现简单的双色球(实例讲解)
Jul 31 Javascript
原生JS实现图片无缝滚动方法(附带封装的运动框架)
Oct 01 Javascript
基于Vue实现拖拽效果
Apr 27 Javascript
基于vue和bootstrap实现简单留言板功能
May 30 #Javascript
JS常见内存泄漏及解决方案解析
May 30 #Javascript
react结合bootstrap实现评论功能
May 30 #Javascript
基于JavaScript或jQuery实现网站夜间/高亮模式
May 30 #jQuery
JavaScript类的继承多种实现方法
May 30 #Javascript
Vue实现购物车实例代码两则
May 30 #Javascript
vue实现购物车案例
May 30 #Javascript
You might like
国外比较好的几个的Php开源建站平台小结
2010/04/22 PHP
php中in_array函数用法探究
2014/11/25 PHP
php mysql like 实现多关键词搜索的方法
2016/10/29 PHP
CakePHP框架Model关联对象用法分析
2017/08/04 PHP
JavaScript使用Max函数返回两个数字中较大数的方法
2015/04/06 Javascript
分享10个原生JavaScript技巧
2015/04/20 Javascript
JS中对数组元素进行增删改移的方法总结
2016/12/15 Javascript
JS编写函数实现对身份证号码最后一位的验证功能
2016/12/29 Javascript
JS实现为动态创建的元素添加事件操作示例
2018/03/17 Javascript
对angularJs中$sce服务安全显示html文本的实例
2018/09/30 Javascript
vue插件draggable实现拖拽移动图片顺序
2018/12/01 Javascript
javascript实现手动点赞效果
2019/04/09 Javascript
js实现漂亮的星空背景
2019/11/01 Javascript
Vue中computed和watch有哪些区别
2020/12/19 Vue.js
Vue实现随机验证码功能
2020/12/29 Vue.js
利用Python实现Windows定时关机功能
2017/03/21 Python
Python实现从log日志中提取ip的方法【正则提取】
2018/03/31 Python
pytorch中如何使用DataLoader对数据集进行批处理的方法
2019/08/06 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
2019/08/22 Python
python图形绘制奥运五环实例讲解
2019/09/14 Python
HTML5画渐变背景图片并自动下载实现步骤
2013/11/18 HTML / CSS
浅谈html5标签css3的常用样式
2016/10/20 HTML / CSS
斐乐美国官方网站:FILA美国
2019/03/01 全球购物
东南亚冒险旅行与活动:Adventoro
2019/10/16 全球购物
adidas菲律宾官网:adidas PH
2020/02/07 全球购物
瀑布模型都有哪些优缺点
2014/06/23 面试题
双十佳事迹材料
2014/01/29 职场文书
六个一活动实施方案
2014/03/21 职场文书
村长贪污检举信
2014/04/04 职场文书
环境监测与治理技术专业求职信
2014/07/06 职场文书
个人四风问题整改措施
2014/10/24 职场文书
假如给我三天光明读书笔记
2015/06/26 职场文书
2019大学生实习报告
2019/06/21 职场文书
python编程简单几行代码实现视频转换Gif示例
2021/10/05 Python
浅谈MySQL中的六种日志
2022/03/23 MySQL
mysql 8.0.27 绿色解压版安装教程及配置方法
2022/04/20 MySQL