基于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与CSS写在同一个文件里的书写方法
Jun 02 Javascript
收藏Javascript中常用的55个经典技巧
Aug 12 Javascript
jquery lazyload延迟加载技术的实现原理分析
Jan 24 Javascript
JQuery 使用attr方法实现下拉列表选中
Oct 13 Javascript
JavaScript获取页面上被选中文字的方法技巧
Mar 13 Javascript
js选择器全面解析
Jun 27 Javascript
全面了解JavaScript对象进阶
Jul 19 Javascript
Bootstrap下拉菜单样式
Feb 07 Javascript
详解Vue2.X的路由管理记录之 钩子函数(切割流水线)
May 02 Javascript
node.js部署之启动后台运行forever的方法
May 23 Javascript
vue使用jsonp抓取qq音乐数据的方法
Jun 21 Javascript
详解Javascript实践中的命令模式
May 05 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入门学习知识点五 关于php数组的几个基本操作
2011/07/14 PHP
PHP变量内存分配问题记录整理
2013/11/27 PHP
PHP采集静态页面并把页面css,img,js保存的方法
2014/12/23 PHP
PHP查找数值数组中不重复最大和最小的10个数的方法
2015/04/20 PHP
PHP 的比较运算与逻辑运算详解
2016/05/12 PHP
PHP使用pdo连接access数据库并循环显示数据操作示例
2018/06/05 PHP
js操作二级联动实现代码
2010/07/27 Javascript
客户端js判断文件类型和文件大小即限制上传大小
2013/11/20 Javascript
jquery限定文本框只能输入数字即整数和小数
2013/11/29 Javascript
网页右下角弹出窗体实现代码
2014/06/05 Javascript
js获取checkbox复选框选中的选项实例
2014/08/24 Javascript
jQuery实现可用于博客的动态滑动菜单
2015/03/09 Javascript
JavaScript Uploadify文件上传实例
2017/02/28 Javascript
vue实现表格增删改查效果的实例代码
2017/07/18 Javascript
vue中的计算属性的使用和vue实例的方法示例
2017/12/04 Javascript
zTree树形菜单交互选项卡效果的实现方法
2017/12/25 Javascript
Vuex提升学习篇
2018/01/11 Javascript
vue自动化表单实例分析
2018/05/06 Javascript
vue this.reload 方法 配置
2018/09/12 Javascript
详解使用React制作一个模态框
2019/03/14 Javascript
[41:41]TFT vs Secret Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
python正则匹配抓取豆瓣电影链接和评论代码分享
2013/12/27 Python
python使用PythonMagick将jpg图片转换成ico图片的方法
2015/03/26 Python
python使用Queue在多个子进程间交换数据的方法
2015/04/18 Python
浅谈pandas筛选出表中满足另一个表所有条件的数据方法
2019/02/08 Python
Django集成CAS单点登录的方法示例
2019/06/10 Python
pyinstaller参数介绍以及总结详解
2019/07/12 Python
MNIST数据集转化为二维图片的实现示例
2020/01/10 Python
纯HTML+CSS3制作导航菜单(附源码)
2013/04/24 HTML / CSS
单位门卫岗位职责
2013/12/20 职场文书
财务部经理岗位职责
2014/02/03 职场文书
我的梦想演讲稿
2014/04/30 职场文书
实习护士自荐信
2015/03/25 职场文书
2015年精神文明建设工作总结
2015/04/21 职场文书
2019年最新借条范本!
2019/07/08 职场文书
nginx中proxy_pass各种用法详解
2021/11/07 Servers