基于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 强制刷新页面的实现代码
Dec 13 Javascript
jQuery中queue()方法用法实例
Dec 29 Javascript
Jquery中offset()和position()的区别分析
Feb 05 Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
Jul 10 Javascript
基于bootstrap3和jquery的分页插件
Jul 31 Javascript
浅谈vue后台管理系统权限控制思考与实践
Dec 19 Javascript
生成无限制的微信小程序码的示例代码
Sep 20 Javascript
微信sdk实现禁止微信分享(使用原生php实现)
Nov 15 Javascript
原生javascript实现类似vue的数据绑定功能示例【观察者模式】
Feb 24 Javascript
webstorm建立vue-cli脚手架的傻瓜式教程
Sep 22 Javascript
Vue实现返回顶部按钮实例代码
Oct 21 Javascript
React Hook用法示例详解(6个常见hook)
Apr 28 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实现常用排序算法的方法
2020/02/05 PHP
php慢查询日志和错误日志使用详解
2021/02/27 PHP
jQuery开发者都需要知道的5个小技巧
2010/01/08 Javascript
JavaScript实现班级随机点名小应用需求的具体分析
2014/05/12 Javascript
javascript将浮点数转换成整数的三个方法
2014/06/23 Javascript
ajaxFileUpload.js插件支持多文件上传的方法
2014/09/02 Javascript
基于JS实现横线提示输入验证码随验证码输入消失(js验证码的实现)
2016/10/27 Javascript
jquery广告无缝轮播实例
2017/01/05 Javascript
微信小程序  http请求封装详解及实例代码
2017/02/15 Javascript
Bootstrap 过渡效果Transition 模态框(Modal)
2017/03/17 Javascript
vue中mint-ui环境搭建详细介绍
2017/04/06 Javascript
jQuery实现多张图片上传预览(不经过后端处理)
2017/04/29 jQuery
详解angularjs中如何实现控制器和指令之间交互
2017/05/31 Javascript
js实现动态添加上传文件页面
2018/10/22 Javascript
NodeJs生成sitemap站点地图的方法示例
2019/06/11 NodeJs
layer父页获取弹出层输入框里面的值方法
2019/09/02 Javascript
使用Python来编写HTTP服务器的超级指南
2016/02/18 Python
SQLite3中文编码 Python的实现
2017/01/11 Python
python实现数据图表
2017/07/29 Python
Python使用matplotlib实现绘制自定义图形功能示例
2018/01/18 Python
python 字典有序并写入json文件过程解析
2019/09/30 Python
基于Pycharm加载多个项目过程图解
2020/01/19 Python
django 文件上传功能的相关实例代码(简单易懂)
2020/01/22 Python
tensorflow 利用expand_dims和squeeze扩展和压缩tensor维度方式
2020/02/07 Python
详解使用python爬取抖音app视频(appium可以操控手机)
2021/01/26 Python
如何保障Web服务器安全
2014/05/05 面试题
临床医学系毕业生推荐信
2013/11/09 职场文书
药学专业大专生的自我评价
2013/12/12 职场文书
服务之星获奖感言
2014/01/21 职场文书
园艺师求职信
2014/04/27 职场文书
合作协议书格式
2014/08/19 职场文书
行政执法作风整顿剖析材料
2014/10/11 职场文书
幼儿教师远程研修感悟
2015/11/18 职场文书
python迷宫问题深度优先遍历实例
2021/06/20 Python
opencv检测动态物体的实现
2021/07/21 Python
sass 常用备忘案例详解
2021/09/15 HTML / CSS