当前位置:首页 > VUE

用vue实现简易购物车

2026-01-07 06:46:53VUE

实现步骤

创建一个Vue项目,确保已安装Vue CLI。可以通过以下命令初始化项目:

vue create shopping-cart
cd shopping-cart
npm run serve

项目结构

src目录下创建以下文件:

  • components/CartItem.vue:单个商品组件
  • components/CartList.vue:购物车列表组件
  • App.vue:主入口文件

数据准备

App.vue中定义商品数据和购物车状态:

data() {
  return {
    products: [
      { id: 1, name: '商品A', price: 100, stock: 5 },
      { id: 2, name: '商品B', price: 200, stock: 3 },
      { id: 3, name: '商品C', price: 300, stock: 2 }
    ],
    cart: []
  }
}

商品列表组件

创建CartList.vue组件用于展示商品列表和添加功能:

<template>
  <div>
    <h3>商品列表</h3>
    <ul>
      <li v-for="product in products" :key="product.id">
        {{ product.name }} - ¥{{ product.price }}
        <button @click="addToCart(product)">加入购物车</button>
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  props: ['products'],
  methods: {
    addToCart(product) {
      this.$emit('add-to-cart', product)
    }
  }
}
</script>

购物车组件

创建CartItem.vue组件显示购物车内容:

<template>
  <div>
    <h3>购物车</h3>
    <div v-if="cart.length === 0">购物车为空</div>
    <ul v-else>
      <li v-for="(item, index) in cart" :key="index">
        {{ item.name }} × {{ item.quantity }} - ¥{{ item.price * item.quantity }}
        <button @click="removeItem(index)">删除</button>
      </li>
    </ul>
    <div v-if="cart.length > 0">
      总价: ¥{{ totalPrice }}
    </div>
  </div>
</template>

<script>
export default {
  props: ['cart'],
  computed: {
    totalPrice() {
      return this.cart.reduce((sum, item) => sum + item.price * item.quantity, 0)
    }
  },
  methods: {
    removeItem(index) {
      this.$emit('remove-item', index)
    }
  }
}
</script>

主组件整合

App.vue中整合功能:

<template>
  <div>
    <CartList :products="products" @add-to-cart="handleAddToCart" />
    <CartItem :cart="cart" @remove-item="handleRemoveItem" />
  </div>
</template>

<script>
import CartList from './components/CartList.vue'
import CartItem from './components/CartItem.vue'

export default {
  components: { CartList, CartItem },
  methods: {
    handleAddToCart(product) {
      const existingItem = this.cart.find(item => item.id === product.id)
      if (existingItem) {
        existingItem.quantity++
      } else {
        this.cart.push({ ...product, quantity: 1 })
      }
    },
    handleRemoveItem(index) {
      this.cart.splice(index, 1)
    }
  }
}
</script>

样式优化

添加基础样式增强用户体验:

ul {
  list-style: none;
  padding: 0;
}
li {
  margin: 10px 0;
  padding: 10px;
  border: 1px solid #eee;
}
button {
  margin-left: 10px;
  cursor: pointer;
}

功能扩展建议

  • 添加本地存储持久化购物车数据
  • 实现商品数量增减按钮
  • 添加结算功能
  • 实现商品库存实时更新

以上实现提供了购物车核心功能,包括商品展示、添加至购物车、删除商品和计算总价。可以根据实际需求进一步扩展功能。

用vue实现简易购物车

标签: 购物车简易
分享给朋友:

相关文章

简易实现vue

简易实现vue

实现一个简易 Vue 框架 以下是一个简易 Vue 框架的核心实现思路,包含数据响应式、模板编译和依赖收集等功能。 数据响应式 通过 Object.defineProperty 或 Proxy 实现…

用vue实现简易购物车

用vue实现简易购物车

实现简易购物车的Vue代码 以下是一个基于Vue 3的简易购物车实现方案,包含商品展示、添加删除、价格计算等核心功能。 项目结构 src/ ├── components/ │ ├── CartI…

php实现购物车

php实现购物车

PHP实现购物车功能 购物车功能是电商网站的核心模块之一,通常涉及商品添加、删除、数量修改和结算等操作。以下是使用PHP实现购物车功能的几种方法。 使用Session存储购物车数据 Session…

php 购物车实现

php 购物车实现

数据库设计 购物车功能通常需要设计数据库表存储商品和用户信息。常见的表包括products(商品表)、users(用户表)和cart(购物车表)。cart表通常包含字段:id(主键)、user_id(…

php 实现购物车

php 实现购物车

PHP 实现购物车功能 购物车功能是电子商务网站的核心部分,可以通过 PHP 和 Session 或数据库来实现。以下是两种常见的实现方式: 使用 Session 存储购物车数据 Session…

php购物车实现原理

php购物车实现原理

PHP 购物车实现原理 购物车是电子商务网站的核心功能之一,PHP 实现购物车功能主要依赖会话(Session)或数据库存储用户选择的商品信息。以下是常见的实现方式和技术要点: 基于 Session…