基于Vuejs實現(xiàn)購物車功能
本文實例為大家分享了Vuejs購物車實現(xiàn)代碼,供大家參考,具體內(nèi)容如下
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">商品數(shù)量</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前端組件學(xué)習(xí)教程》,歡迎大家學(xué)習(xí)閱讀。
關(guān)于vue.js組件的教程,請大家點擊專題vue.js組件學(xué)習(xí)教程進(jìn)行學(xué)習(xí)。
更多vue學(xué)習(xí)教程請閱讀專題《vue實戰(zhàn)教程》
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue純前端使用exceljs導(dǎo)出excel文件方式
本文介紹了如何使用excel.js插件和Vue實現(xiàn)純前端Excel文件導(dǎo)出,并詳細(xì)步驟包括安裝插件、創(chuàng)建工作簿和工作表、定義列數(shù)據(jù)、設(shè)置樣式、行級操作、遍歷行和單元格、插入圖片和超鏈接2024-11-11
Vue-resource實現(xiàn)ajax請求和跨域請求示例
本篇文章主要介紹了Vue-resource實現(xiàn)ajax請求和跨域請求示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02
Vue+webpack項目配置便于維護(hù)的目錄結(jié)構(gòu)教程詳解
新建項目的時候創(chuàng)建合理的目錄結(jié)構(gòu)便于后期的維護(hù)是很重要。這篇文章主要介紹了Vue+webpack項目配置便于維護(hù)的目錄結(jié)構(gòu) ,需要的朋友可以參考下2018-10-10
vue-infinite-loading2.0 中文文檔詳解
本篇文章主要介紹了vue-infinite-loading2.0 中文文檔詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-04-04

