> 웹 프론트엔드 > JS 튜토리얼 > Vuejs를 기반으로 장바구니 기능 구현

Vuejs를 기반으로 장바구니 기능 구현

高洛峰
풀어 주다: 2017-02-04 13:38:37
원래의
1149명이 탐색했습니다.

이 글의 예시는 참고용으로 Vuejs 장바구니 구현 코드를 공유합니다.

html:

<!DOCTYPE html>
<html>
<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>
 <template v-if="data.length">
  <h3>我的购物车:</h3>
  <div>
  <div>
   <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 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 &#39;$&#39; 2}}</span>
 </template>
 <template v-else>
  <div>
  <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:&#39;.container&#39;,
 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:&#39;IPhone 6&#39;,
 price:5466,
 id:1,
 count:1
 },
 {
 name:&#39;IMac&#39;,
 price:7466,
 id:2,
 count:1
 },
 {
 name:&#39;iPad&#39;,
 price:5400,
 id:3,
 count:1
 }
]
로그인 후 복사

위 내용은 이 글의 전체 내용입니다. 여러분의 학습에 도움이 되길 바랍니다.

Vuejs 기반 장바구니 기능 구현과 관련된 더 많은 글은 PHP 중국어 홈페이지를 참고해주세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿