基于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 相关文章推荐
JavaScript类和继承 constructor属性
Mar 04 Javascript
javascript验证上传文件的类型限制必须为某些格式
Nov 14 Javascript
js获取页面传来参数的方法
Sep 06 Javascript
jQuery+css3动画属性制作猎豹浏览器宽屏banner焦点图
Mar 16 Javascript
jQuery EasyUI 入门必看
Jun 03 Javascript
Bootstrap select下拉联动(jQuery cxselect)
Jan 04 Javascript
BootStrapValidator初使用教程详解
Feb 10 Javascript
js canvas实现适用于移动端的百分比仪表盘dashboard
Jul 18 Javascript
微信小程序实现图片上传功能
May 28 Javascript
vue自定v-model实现表单数据双向绑定问题
Sep 03 Javascript
jQuery实现提交表单时不提交隐藏div中input的方法
Oct 08 jQuery
Vuex的API文档说明详解
Feb 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 向访客和爬虫显示不同的内容
2009/11/09 PHP
php堆排序(heapsort)练习
2013/11/13 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(一)
2014/06/23 PHP
PHP识别二维码的方法(php-zbarcode安装与使用)
2016/07/07 PHP
php rsa 加密,解密,签名,验签详解
2016/12/06 PHP
PHP实现本地图片转base64格式并上传
2020/05/29 PHP
IE中jscript/javascript的条件编译
2006/09/07 Javascript
JavaScript之appendChild、insertBefore和insertAfter使用说明
2010/12/30 Javascript
Javascript实现可旋转的圆圈实例代码
2015/08/04 Javascript
两种js监听滚轮事件的实现方法
2016/05/13 Javascript
JQuery解析XML数据的几个简单实例
2016/05/18 Javascript
jquery根据一个值来选中select下的option实例代码
2016/08/29 Javascript
通过js控制时间,一秒一秒自己动的实例
2017/10/25 Javascript
Node.js 使用request模块下载文件的实例
2018/09/05 Javascript
解决Vue开发中对话框被遮罩层挡住的问题
2018/11/26 Javascript
vue滚动插件better-scroll使用详解
2019/10/18 Javascript
vue插槽slot的简单理解与用法实例分析
2020/03/14 Javascript
javascript+Canvas实现画板功能
2020/06/23 Javascript
JavaScript对象访问器Getter及Setter原理解析
2020/12/08 Javascript
vue+element table表格实现动态列筛选的示例代码
2021/01/14 Vue.js
python使用xmlrpclib模块实现对百度google的ping功能
2015/06/02 Python
Python执行时间的计算方法小结
2017/03/17 Python
浅谈numpy数组的几种排序方式
2017/12/15 Python
数据清洗--DataFrame中的空值处理方法
2018/07/03 Python
win10系统Anaconda和Pycharm的Tensorflow2.0之CPU和GPU版本安装教程
2019/12/03 Python
python爬虫模拟浏览器访问-User-Agent过程解析
2019/12/28 Python
tensorflow 模型权重导出实例
2020/01/24 Python
Python调用shell命令常用方法(4种)
2020/05/11 Python
使用numpngw和matplotlib生成png动画的示例代码
2021/01/24 Python
德国机场停车位比较和预订网站:Ich-parke-billiger
2018/01/08 全球购物
会计专业求职信
2014/08/10 职场文书
党的群众路线教育实践活动党员个人剖析材料
2014/10/08 职场文书
团委工作总结2015
2015/04/02 职场文书
质量整改通知单
2015/04/21 职场文书
曾国藩励志经典名言37句,蕴含哲理
2019/10/14 职场文书
解决Django transaction进行事务管理踩过的坑
2021/04/24 Python