基于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 编码转换 gb2312 和 utf8 互转的2种方法
Aug 07 Javascript
js中的getAttribute方法使用示例
Aug 01 Javascript
浅谈JavaScript数据类型及转换
Feb 28 Javascript
jQuery实现Email邮箱地址自动补全功能代码
Nov 03 Javascript
javascript实现粘贴qq截图功能(clipboardData)
May 29 Javascript
javascript基于原型链的继承及call和apply函数用法分析
Dec 15 Javascript
jquery实现图片轮播器
May 23 jQuery
vue-cli中的babel配置文件.babelrc实例详解
Feb 22 Javascript
vue.js删除列表中的一行
Jun 30 Javascript
vue-cli 打包后提交到线上出现 &quot;Uncaught SyntaxError:Unexpected token&quot; 报错
Nov 06 Javascript
bootstrap-table+treegrid实现树形表格
Jul 26 Javascript
vue实现短信验证码登录功能(流程详解)
Dec 10 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数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
2011/11/02 PHP
PHP utf-8编码问题,utf8编码,数据库乱码,页面显示输出乱码
2013/04/08 PHP
php合并js请求的例子
2013/11/01 PHP
ThinkPHP 404页面的设置方法
2015/01/14 PHP
刷新PHP缓冲区为你的站点加速
2015/10/10 PHP
php命令行(cli)模式下报require 加载路径错误的解决方法
2015/11/23 PHP
PHP Header用于页面跳转时的几个注意事项
2016/10/21 PHP
laravel实现上传图片的两种方式小结
2019/10/12 PHP
JS获取农历日期具体实例
2013/11/14 Javascript
JavaScript bold方法入门实例(把指定文字显示为粗体)
2014/10/17 Javascript
浅谈jQuery中 wrap() wrapAll() 与 wrapInner()的差异
2014/11/12 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
2015/08/27 Javascript
基于JavaScript如何实现ajax调用后台定义的方法
2015/12/29 Javascript
javascript动画之磁性吸附效果篇
2016/12/09 Javascript
微信小程序实现图片轮播及文件上传
2017/04/07 Javascript
在vue项目中使用Nprogress.js进度条的方法
2018/01/31 Javascript
vue+element的表格实现批量删除功能示例代码
2018/08/17 Javascript
vue-cli脚手架打包静态资源请求出错的原因与解决
2019/06/06 Javascript
axios如何取消重复无用的请求详解
2019/12/15 Javascript
ES6对象操作实例详解
2020/05/23 Javascript
vue实现自定义多选按钮
2020/07/16 Javascript
[01:05:52]DOTA2-DPC中国联赛 正赛 Ehome vs Aster BO3 第一场 2月2日
2021/03/11 DOTA
Python写的Tkinter程序屏幕居中方法
2015/03/10 Python
Python中为什么要用self探讨
2015/04/14 Python
python OpenCV学习笔记实现二维直方图
2018/02/08 Python
Python3非对称加密算法RSA实例详解
2018/12/06 Python
简单了解python PEP的一些知识
2019/07/13 Python
Django 项目重命名的实现步骤解析
2019/08/14 Python
Django 简单实现分页与搜索功能的示例代码
2019/11/07 Python
HTML5组件Canvas实现图像灰度化(步骤+实例效果)
2013/04/22 HTML / CSS
Elemis美国官网:英国的第一豪华护肤品牌
2018/03/15 全球购物
超市促销活动方案
2014/03/05 职场文书
餐饮业员工工作决心书
2014/03/11 职场文书
教师政风行风评议心得体会
2014/10/21 职场文书
五年级小学生评语
2014/12/26 职场文书
一劳永逸彻底解决pip install慢的办法
2021/05/24 Python