Vuejs实现购物车功能

开始更新前端框架Vue.JS的相关博客。

功能概述

学习了Vue.JS的一些基础知识,现在利用指令、数据绑定这些基础知识开发一个简单的购物车功能。功能要点如下:
(1)展示商品的名称、单价和数量;
(2)商品的数量可以增加和减少;
(3)购物车的总价要实时更新,即数量发生变动,总价也要相应的改变;
(4)商品可以从购物车中移除;
(5)具有选择功能,只计算选中的商品的总价。

上一张截图,如下:

代码

代码分成三部分,分别是HTML、JS、CSS。关键的是HTML和JS。

HTML

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Vue 购物车</title>
    <script src="../js/vue.min.js"></script>
    <link href="../css/cart.css" rel="external nofollow" rel="stylesheet">
  </head>
  <body>
    <div id="app" v-cloak>
      <template v-if="list.length">
        <table>
          <thead>
            <tr>
              <th><input type="checkbox" v-on:click="swapCheck" v-model="checked"></th>
              <th>商品名称</th>
              <th>商品单价</th>
              <th>商品数量</th>
              <th>操作</th>
            </tr>
          </thead>
          <tbody>
            <tr v-for="(item,index) in list">
              <td><input type="checkbox" v-model="selectList" :id="item.id" :value="index" name="selectList" ></td>
              <td>{{ item.name }}</td>
              <td>{{ item.price }}</td>
              <td>
                <button @click="handleReduce(index)" :disabled="item.count === 1">-</button>
                {{ item.count }}
                <button @click="handleAdd(index)">+</button>
              </td>
              <td><button @click="handleRemove(index)">移除</button></td>
            </tr>
          </tbody>
        </table>
        <div>总价:¥ {{ totalPrice }}</div>
      </template>
      <div v-else>购物车为空!</div>
    </div>

    <script src="../js/cart.js"></script>
  </body>
</html>

JS

var app = new Vue({
  el:'#app',
  data:{
    list:[
      {
        id:1,
        name:'iPhone 8',
        price:8888,
        count:1
      },
      {
        id:2,
        name:'Huwei Mate10',
        price:6666,
        count:1
      },
      {
        id:3,
        name:'Lenovo',
        price:6588,
        count:1
      }
    ],
    selectList:[],
    checked:false
  },
  computed:{
    totalPrice:function(){
      var total = 0;
      for(var i = 0,len = this.selectList.length;i < len;i++){
        var index = this.selectList[i];
        var item = this.list[index];
        if(item){
          total += item.price * item.count;
        }
        else{
          continue;
        }

      }
      return total.toString().replace(/\B(?=(\d{3})+$)/g,',');
    }
  },
  methods:{
    handleReduce:function(index){
      var item = this.list[index];
      if(item.count < 2){
        return;
      }
      item.count--;
    },
    handleAdd:function(index){
      var item = this.list[index];
      item.count++;
    },
    handleRemove:function(index){
      this.list.splice(index,1);
    },
    swapCheck:function(){

      var selectList = document.getElementsByName('selectList');
      var len = selectList.length;
      if(this.checked){
        for(var i = 0;i < len;i++){
          var item = selectList[i];
          item.checked = false;
        }
        this.checked = false;
        this.selectList = [];
      }
      else{
        for(i = 0;i < len;i++){
          item = selectList[i];
          if(item.checked === false){
            item.checked = true;
            this.selectList.push(selectList[i].value);
          }
        }
        this.checked = true;

      }
    }
  }
});

CSS

[v-cloak]{
  display: none;
}

table{
  border: 1px solid black;
  border-collapse: collapse;
  border-spacing: 0;
  empty-cells: show;
}

th,td{
  padding: 8px 16px;
  border:1px solid black;
  text-align: center;
}

th{
  background-color: gray;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Vue实现购物车功能

    效果图: 代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.0.2/css/bootstrap.min.css" rel="external nofollow" /> &l

  • 基于Vuejs实现购物车功能

    本文实例为大家分享了Vuejs购物车实现代码,供大家参考,具体内容如下 html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>我的vue购物车</title> <link rel="stylesheet" href="css/bootstrap.min.css&q

  • vuejs手把手教你写一个完整的购物车实例代码

    由于我们公司是主营业务是海淘,所以每个项目都是类似淘宝天猫之类的商城,那么购物车就是一个重点开发功能模块.介于之前我都是用jq来写购物车的,这次就用vuejs来写一个购物车.下面我就从全选,数量控制器,运费,商品金额计算等方法来演示一下一个能用在实际场景的购物车是怎么做出来的以及记录一下这次用vuejs踩过的坑. 1.一层数据结构-全选 下面这段代码和vuejs官网里面checkbox绑定很像.不明白的可以直接上vuejs官网看看. <!DOCTYPE html> <html lang=

  • Vue2.0实现购物车功能

    简介 vue.js是由华人尤雨溪开发的一套MVVM框架.vue.js 的核心是一个允许你采用简洁的模板语法来声明式的将数据渲染进 DOM 的系统,它非常适用于具有复杂交互逻辑的前端应用,如一些单页应用程序,有很多表单操作,页面中的内容需要根据用户的操作动态变化. 主要特性: 1.响应式的数据绑定  2.组件化开发  3.Virtual DOM 开发准备 工具 我使用的编辑器是sublime text3,首先要先安装个插件sublimeServer,用来搭建一个http服务器,使用详情请查看这篇博

  • 用vue和node写的简易购物车实现

    项目介绍 这是用vue写前端,用node来接收前端发来的请求,然后进行相应的数据操作,例如数据的存取和删除等.这是个人的练习项目,目前功能做的比较简单,主要是展示商品列表,把商品加入购物车,从购物车删除商品三个小功能. 搭建本地环境 因为是用vue,需要用babel把es6语法转为es5语法. 1.配置.babelrc文件 { "presets": [ "es2015", "stage-2" ], "plugins": [&q

  • Vuejs实现购物车功能

    开始更新前端框架Vue.JS的相关博客. 功能概述 学习了Vue.JS的一些基础知识,现在利用指令.数据绑定这些基础知识开发一个简单的购物车功能.功能要点如下: (1)展示商品的名称.单价和数量: (2)商品的数量可以增加和减少: (3)购物车的总价要实时更新,即数量发生变动,总价也要相应的改变: (4)商品可以从购物车中移除: (5)具有选择功能,只计算选中的商品的总价. 上一张截图,如下: 代码 代码分成三部分,分别是HTML.JS.CSS.关键的是HTML和JS. HTML <!DOCTY

  • Javascript实现购物车功能的详细代码

    我们肯定都很熟悉商品购物车这一功能,每当我们在某宝某东上购买商品的时候,看中了哪件商品,就会加入购物车中,最后结算.购物车这一功能,方便消费者对商品进行管理,可以添加商品,删除商品,选中购物车中的某一项或几项商品,最后商品总价也会随着消费者的操作随着变化. 现在,笔者对购物车进行了简单实现,能够实现真实购物车当中的大部分功能.在本示例当中,用到了javascript中BOM操作,DOM操作,表格操作,cookie,json等知识点,同时,采用三层架构方式对购物车进行设计,对javascript的

  • angular.js实现购物车功能

    本文实例为大家分享了angular.js购物车功能的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>购物车</title> <script src="angularjs/angular.js"></script> <st

  • 使用Angular.js实现简单的购物车功能

    先给大家分享实现代码,在代码下面有效果图展示,大家可以两者结合参考下,废话不多说了,具体代码如下所示: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script src="http://code.angularjs.org/1.2.5/angular.min.js"></script

  • Android实现二级列表购物车功能

    本文实例为大家分享了Android实现二级列表购物车功能的具体代码,供大家参考,具体内容如下 MainActivity: package com.baway.twoshopcar; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.CheckBox; import android.widget.Expa

  • Android实现简单购物车功能

    本文实例为大家分享了Android实现购物车功能的具体代码,供大家参考,具体内容如下 MainActivity布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"

  • angularjs实现简单的购物车功能

    本文实例为大家分享了angularjs实现购物车功能的具体代码,供大家参考,具体内容如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> *{ margin: 0; padding: 0; margin-left: 10px; } li{ list-

  • JAVAEE中用Session简单实现购物车功能示例代码

    Session简单实现购物车功能 这个小程序主要就3个页面,一个商品列表页面(HomeServlet),一个是提示加入购物车页面(AddCartTipServlet),一个是显示购物车清单页面(ShowCartServlet). HomeServlet页面: @WebServlet({ "/HomeServlet", "/home" }) public class HomeServlet extends HttpServlet { private static fi

  • 利用python实现简单的循环购物车功能示例代码

    本文主要给大家介绍了关于python实现循环购物车功能的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 示例代码 # -*- coding: utf-8 -*- __author__ = 'hujianli' shopping = [ ("iphone6s", 5000), ("book python", 81), ("iwach", 3200), ("电视机", 2200) ] def zero(name):

随机推荐