基于Vuejs实现购物车功能


Posted in Javascript onAugust 02, 2016

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

html:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>我的vue购物车</title>
 <link rel="stylesheet" href="css/bootstrap.min.css">
 <link rel="stylesheet" href="css/style.css">
 <script src="js/vue.js"></script>
 <script src="js/data.js"></script>
</head>
<body>
 <div class="container">
 <template v-if="data.length">
 <h3>我的购物车:</h3>
 <div class="product">
 <div class="item">
 <span class="btn btn-default">商品名称</span>
 <span class="btn btn-default left">商品单价</span>
 <span class="btn btn-default left">商品数量</span>
 <span class="btn btn-default left">操作</span>
 </div>
 <div class="item" style="padding:5%;border: 1px solid black" v-for="item in data">
 <span class="btn btn-default">{{item.name}}</span>
 <span class="btn btn-default left" style="margin-left: 18%">{{item.price}}</span>
 <span>
 <em class="btn btn-primary add" v-on:click="add($index)" :class="{off:item.count==11}">+</em>
  {{item.count}}
 <em class="btn btn-primary reduce" v-on:click="reduce($index)" :class="{off:item.count==1}">-</em>
 </span>
 <span class="btn btn-danger left" v-on:click="remove(item)">移除</span>
 </div>
 </div>
 <h2>清单:</h2>
 <span class="btn btn-primary">商品总价:{{price |currency '$' 2}}</span>
 </template>
 <template v-else>
 <div class="jumbotron">
 <h1>您的购物车空了</h1>
 <p>是否去重新挑选</p>
 <p><a class="btn btn-primary btn-lg" href="#" role="button">重新挑选</a></p>
 </div>
 </template>
 </div>
</body>
<script>
 new Vue({
 el:'.container',
 data:{
 data:data
 },
 computed:{
 price:function () {
 var price = 0;
 for(var i=0;i<this.data.length;i++){
 var self = this.data[i];
 price += self.count * self.price;
 }
 return price;
 }
 },
 methods:{
 add:function ($index) {
 var self = this.data[$index];
 if(self.count >10){
 return false;
 }
 self.count++;
 },
 reduce:function($index){
 var self = this.data[$index];
 if(self.count <= 1){
 return false
 }
 self.count--;
 },
 remove:function(item){
 this.data.$remove(item);
 }
 }
 })
</script>
</html>

css:

h3{
 text-align: center;
}
.left{
 margin-left: 14%;
}
.item{
 text-align: center;
 padding: 3%;
}
.add{
 margin-left: 15%;
}
.off{
 background-color: lightgrey;
 border: 1px solid lightgrey;
}

 js: 

/**
 * Created by Administrator on 2016/7/29.
 */
var data = [
 {
 name:'IPhone 6',
 price:5466,
 id:1,
 count:1
 },
 {
 name:'IMac',
 price:7466,
 id:2,
 count:1
 },
 {
 name:'iPad',
 price:5400,
 id:3,
 count:1
 }
]

本文已被整理到了《Vue.js前端组件学习教程》,欢迎大家学习阅读。

关于vue.js组件的教程,请大家点击专题vue.js组件学习教程进行学习。

更多vue学习教程请阅读专题《vue实战教程》

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

Javascript 相关文章推荐
js 屏蔽鼠标右键脚本附破解方法
Dec 03 Javascript
ExtJS PropertyGrid中使用Combobox选择值问题
Jun 13 Javascript
jquery解析JSON数据示例代码
Mar 17 Javascript
利用jQuery实现打字机字幕效果实例代码
Sep 02 Javascript
移动端日期插件Mobiscroll.js使用详解
Dec 19 Javascript
JavaScript自定义分页样式
Jan 17 Javascript
Bootstrap下拉菜单Dropdowns的实现代码
Mar 17 Javascript
Angularjs中数据绑定的实例详解
Aug 25 Javascript
微信小程序实现城市列表选择
Jun 05 Javascript
用Vue.js方法创建模板并使用多个模板合成
Jun 28 Javascript
javascript删除数组元素的七个方法示例
Sep 09 Javascript
国内常用的js类库大全(CDN公共库)
Jun 24 Javascript
js实现统计字符串中特定字符出现个数的方法
Aug 02 #Javascript
js简单时间比较的方法
Aug 02 #Javascript
JavaScript简单获取系统当前时间完整示例
Aug 02 #Javascript
JS实现将Asp.Net的DateTime Json类型转换为标准时间的方法
Aug 02 #Javascript
关于微信中a链接无法跳转问题
Aug 02 #Javascript
js实现的页面加载完毕之前loading提示效果完整示例【附demo源码下载】
Aug 02 #Javascript
常用的js验证和数据处理总结
Aug 02 #Javascript
You might like
用PHP将数据导入到Foxmail的实现代码
2010/09/05 PHP
php使用Cookie控制访问授权的方法
2015/01/21 PHP
迪菲-赫尔曼密钥交换(Diffie?Hellman)算法原理和PHP实现版
2015/05/12 PHP
jQuery实现的输入框选择时间插件用法实例
2015/02/28 Javascript
CSS图片响应式 垂直水平居中
2015/08/14 Javascript
AngularJS轻松实现双击排序的功能
2016/08/30 Javascript
老生常谈angularjs中的$state.go
2017/04/24 Javascript
详解node.js平台下Express的session与cookie模块包的配置
2017/04/26 Javascript
JS实现小球的弹性碰撞效果
2017/11/11 Javascript
vue单页面打包文件大?首次加载慢?nginx带你飞,从7.5M到1.3M蜕变过程(推荐)
2018/01/16 Javascript
js中apply和Math.max()函数的问题及区别介绍
2018/03/27 Javascript
angular4 共享服务在多个组件中数据通信的示例
2018/03/30 Javascript
Canvas实现微信红包照片效果
2018/08/21 Javascript
JavaScript常用工具方法封装
2019/02/12 Javascript
js实现旋转的星空效果
2019/11/01 Javascript
在VUE中实现文件下载并判断状态的方法
2019/11/08 Javascript
[39:32]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS DT 第二场
2014/05/23 DOTA
Python深入学习之特殊方法与多范式
2014/08/31 Python
从局部变量和全局变量开始全面解析Python中变量的作用域
2016/06/16 Python
运行django项目指定IP和端口的方法
2018/05/14 Python
python http基本验证方法
2018/12/26 Python
Python 按字典dict的键排序,并取出相应的键值放于list中的实例
2019/02/12 Python
Python字符串内置函数功能与用法总结
2019/04/16 Python
Python 图像处理: 生成二维高斯分布蒙版的实例
2019/07/04 Python
详解基于python-django框架的支付宝支付案例
2019/09/23 Python
浅谈PyQt5中异步刷新UI和Python多线程总结
2019/12/13 Python
使用jupyter notebook直接打开.md格式的文件
2020/04/10 Python
在echarts中图例legend和坐标系grid实现左右布局实例
2020/05/16 Python
Python 使用office365邮箱的示例
2020/10/29 Python
python 如何引入协程和原理分析
2020/11/30 Python
Python urllib request模块发送请求实现过程解析
2020/12/10 Python
如何通过 CSS 写出火焰效果
2021/03/24 HTML / CSS
《孔繁森》教学反思
2014/04/17 职场文书
优质服务活动实施方案
2014/05/02 职场文书
委托书范本
2014/09/13 职场文书
百家讲坛观后感
2015/06/12 职场文书