Vue2.0实现购物车示例

简介

vue.js是由华人尤雨溪开发的一套MVVM框架。vue.js 的核心是一个允许你采用简洁的模板语法来声明式的将数据渲染进 DOM 的系统,它非常适用于具有复杂交互逻辑的前端应用,如一些单页应用程序,有很多表单操作,页面中的内容需要根据用户的操作动态变化。

主要特性:

  1. 响应式的数据绑定
  2. 组件化开发
  3. Virtual DOM

开发准备

工具

我使用的编辑器是sublime text3,首先要先安装个插件sublimeServer,用来搭建一个http服务器,使用详情请查看这篇博客文章:
http://blog.csdn.net/paranoidyang/article/details/72854162

下载相关vue文件

  1. vue-resource.js
  2. vue.min.js(也可以用vue.js,开发版有错误提示)

所有文件及说明

data文件夹存放着相关的数据,因为没有连接数据库,所以直接以json的形式展示数据,实际上数据库中也是以json的形式存储数据的,我们以此方式模拟与数据库的通信。
lib文件夹下存放引入的相关vue文件。
在js文件里创建vue实例。

这里写图片描述

页面展示

购物车界面:

这里写图片描述

该购物车实现了全选、自动计算总金额、删除等功能,点击删除后的效果如下:

这里写图片描述

点击结账,就会跳转到收货地址选择页面,点击more可以展开更多的地址选择,并且可以设置某个地址为默认地址,还可以指定配送方式。

这里写图片描述

主要知识点详解

vue是一个MVVM框架。

M(model,数据):

这里写图片描述

这里写图片描述

V(view,DOM视图):

这里写图片描述

VM(view-model,通信)

这里写图片描述

源码地址:https://github.com/Paranoidyang/vue2.0-shoppingCart

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
实现购物车功能,需要以下步骤: 1. 创建一个商品列表,包含每个商品的名称,价格和数量。 2. 在页面上展示商品列表,每个商品都有一个加入购物车的按钮。 3. 点击加入购物车按钮时,将对应商品的信息加入购物车列表中。 4. 在页面上展示购物车列表,包含每个商品的名称,价格,数量和小计金额。 5. 可以对购物车中的商品进行删除或修改数量操作。 6. 计算购物车中所有商品的总价。 下面是一个简单的 Vue 2.0 实现购物车功能的示例代码: HTML: ``` <div id="app"> <h2>商品列表</h2> <ul> <li v-for="item in goods"> {{ item.name }} - {{ item.price }}元 <button @click="addToCart(item)">加入购物车</button> </li> </ul> <h2>购物车</h2> <table> <thead> <tr> <th>名称</th> <th>单价</th> <th>数量</th> <th>小计</th> <th>操作</th> </tr> </thead> <tbody> <tr v-for="(item, index) in cart"> <td>{{ item.name }}</td> <td>{{ item.price }}元</td> <td> <input type="number" v-model="item.quantity" min="1"> </td> <td>{{ item.price * item.quantity }}元</td> <td> <button @click="removeFromCart(index)">删除</button> </td> </tr> </tbody> </table> <p>总价:{{ totalPrice }}元</p> </div> ``` JavaScript: ``` new Vue({ el: '#app', data: { goods: [ { name: '商品1', price: 10, quantity: 1 }, { name: '商品2', price: 20, quantity: 1 }, { name: '商品3', price: 30, quantity: 1 } ], cart: [] }, methods: { addToCart(item) { let index = this.cart.findIndex(cartItem => cartItem.name === item.name) if (index !== -1) { this.cart[index].quantity++ } else { this.cart.push({ name: item.name, price: item.price, quantity: 1 }) } }, removeFromCart(index) { this.cart.splice(index, 1) } }, computed: { totalPrice() { return this.cart.reduce((total, item) => total + item.price * item.quantity, 0) } } }) ``` 在这个示例中,首先定义了一个商品列表和一个购物车列表,其中商品列表包含了每个商品的名称、价格和数量,购物车列表为空。在页面上展示商品列表时,为每个商品添加了一个加入购物车的按钮,并在点击按钮时调用 `addToCart` 方法将对应商品信息加入购物车列表中。在页面上展示购物车列表时,使用了一个表格来展示每个商品的名称、价格、数量和小计金额,并为每个商品添加了一个删除按钮,同时使用了一个计算属性来计算购物车中所有商品的总价。最后,在 `addToCart` 方法中还实现了判断购物车中是否已存在该商品的逻辑,如果存在则将对应商品的数量加 1,否则将该商品添加到购物车列表中。在 `removeFromCart` 方法中通过 `splice` 方法实现了删除购物车列表中的商品的逻辑。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值