当前位置:首页 > VUE

vue组件实现简单商品

2026-01-20 21:24:16VUE

Vue组件实现简单商品展示

1. 创建商品组件 新建一个Vue单文件组件如ProductItem.vue,包含商品图片、名称、价格和购买按钮等基础元素。

<template>
  <div class="product">
    <img :src="product.image" :alt="product.name">
    <h3>{{ product.name }}</h3>
    <p class="price">¥{{ product.price }}</p>
    <button @click="addToCart">加入购物车</button>
  </div>
</template>

2. 定义商品数据 通过props接收商品数据对象,包含必要字段如id、name、price等。

vue组件实现简单商品

<script>
export default {
  props: {
    product: {
      type: Object,
      required: true,
      default: () => ({
        id: 0,
        name: '默认商品',
        price: 0,
        image: ''
      })
    }
  },
  methods: {
    addToCart() {
      this.$emit('add-to-cart', this.product)
    }
  }
}
</script>

3. 添加基础样式 为商品组件添加CSS样式,确保布局美观。

vue组件实现简单商品

<style scoped>
.product {
  border: 1px solid #ddd;
  padding: 15px;
  margin: 10px;
  width: 200px;
  text-align: center;
}
.product img {
  max-width: 100%;
  height: 150px;
  object-fit: cover;
}
.price {
  color: #e63946;
  font-weight: bold;
}
button {
  background: #2a9d8f;
  color: white;
  border: none;
  padding: 8px 15px;
  cursor: pointer;
}
</style>

4. 在父组件中使用 创建商品列表父组件,循环渲染多个商品项。

<template>
  <div class="product-list">
    <ProductItem 
      v-for="item in products" 
      :key="item.id" 
      :product="item"
      @add-to-cart="handleAddToCart"
    />
  </div>
</template>

<script>
import ProductItem from './ProductItem.vue'

export default {
  components: { ProductItem },
  data() {
    return {
      products: [
        { id: 1, name: '商品A', price: 99, image: 'url1' },
        { id: 2, name: '商品B', price: 199, image: 'url2' }
      ]
    }
  },
  methods: {
    handleAddToCart(product) {
      console.log('添加商品:', product)
    }
  }
}
</script>

5. 扩展功能建议

  • 添加商品详情弹窗
  • 实现价格筛选功能
  • 增加商品收藏功能
  • 添加库存状态显示
  • 实现商品评分组件

注意事项

  • 图片URL建议使用require处理本地图片
  • 价格可添加过滤器格式化显示
  • 按钮点击可添加防抖处理
  • 移动端需考虑响应式布局

分享给朋友:

相关文章

vue radio组件实现

vue radio组件实现

Vue Radio 组件实现 在 Vue 中实现 Radio 组件可以通过原生 HTML 的 <input type="radio"> 结合 Vue 的响应式特性,或者使用第三方 UI 库…

vue实现多级组件

vue实现多级组件

Vue 多级组件实现方法 在 Vue 中实现多级组件通常涉及父子组件通信、动态组件或递归组件等技术。以下是几种常见实现方式: 父子组件嵌套 通过逐层嵌套组件实现多级结构,适用于固定层级场景:…

vue实现组件循环图片

vue实现组件循环图片

Vue 实现组件循环图片的方法 在 Vue 中实现组件循环图片通常可以通过 v-for 指令结合动态数据绑定完成。以下是几种常见的实现方式: 使用静态图片路径数组 假设有一组本地图片路径,可以通过数…

实现vue组件

实现vue组件

创建 Vue 组件 Vue 组件可以通过单文件组件(.vue 文件)或直接在 JavaScript 中定义。以下是两种常见实现方式。 单文件组件方式 单文件组件包含模板、脚本和样式三部分,适合复杂项…

如何设计react组件

如何设计react组件

设计 React 组件的核心原则 React 组件的设计需要遵循高内聚、低耦合的原则,确保组件功能独立且易于维护。组件的设计可以分为展示组件和容器组件两类,展示组件负责 UI 渲染,容器组件负责逻辑处…

uniapp 分页组件

uniapp 分页组件

uniapp 分页组件实现方法 在uniapp中实现分页功能,可以通过自定义组件或使用第三方组件库完成。以下是几种常见实现方式: 自定义分页组件 创建一个名为uni-pagination的组件,模板…