当前位置:首页 > VUE

vue实现商品列表代码

2026-02-20 18:03:22VUE

Vue 实现商品列表代码

基础结构

创建 Vue 项目后,在 src/App.vue 或组件文件中实现商品列表功能。需要定义商品数据、渲染列表模板及样式。

<template>
  <div class="product-list">
    <h2>商品列表</h2>
    <ul>
      <li v-for="product in products" :key="product.id">
        {{ product.name }} - ¥{{ product.price }}
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      products: [
        { id: 1, name: "商品A", price: 100 },
        { id: 2, name: "商品B", price: 200 },
        { id: 3, name: "商品C", price: 300 }
      ]
    };
  }
};
</script>

<style scoped>
.product-list {
  font-family: Arial, sans-serif;
}
ul {
  list-style: none;
  padding: 0;
}
li {
  padding: 8px;
  border-bottom: 1px solid #eee;
}
</style>

动态加载数据

通过 axiosfetch 从后端 API 获取商品数据。

vue实现商品列表代码

<script>
import axios from 'axios';

export default {
  data() {
    return {
      products: []
    };
  },
  mounted() {
    this.fetchProducts();
  },
  methods: {
    fetchProducts() {
      axios.get('https://api.example.com/products')
        .then(response => {
          this.products = response.data;
        })
        .catch(error => {
          console.error("加载商品失败:", error);
        });
    }
  }
};
</script>

添加交互功能

实现商品点击事件或购物车功能。

<template>
  <div class="product-list">
    <h2>商品列表</h2>
    <ul>
      <li 
        v-for="product in products" 
        :key="product.id"
        @click="addToCart(product)"
      >
        {{ product.name }} - ¥{{ product.price }}
      </li>
    </ul>
  </div>
</template>

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

使用 Vuex 管理状态

若项目复杂,可通过 Vuex 集中管理商品和购物车状态。

vue实现商品列表代码

// store.js
import Vue from 'vue';
import Vuex from 'vuex';

Vue.use(Vuex);

export default new Vuex.Store({
  state: {
    products: [],
    cart: []
  },
  mutations: {
    SET_PRODUCTS(state, products) {
      state.products = products;
    },
    ADD_TO_CART(state, product) {
      state.cart.push(product);
    }
  },
  actions: {
    fetchProducts({ commit }) {
      axios.get('https://api.example.com/products')
        .then(response => {
          commit('SET_PRODUCTS', response.data);
        });
    }
  }
});

组件中调用 Vuex

在组件中通过 mapStatemapActions 使用 Vuex。

<script>
import { mapState, mapActions } from 'vuex';

export default {
  computed: {
    ...mapState(['products'])
  },
  methods: {
    ...mapActions(['fetchProducts']),
    addToCart(product) {
      this.$store.commit('ADD_TO_CART', product);
    }
  },
  mounted() {
    this.fetchProducts();
  }
};
</script>

分页与筛选

添加分页和筛选功能提升用户体验。

<template>
  <div>
    <input v-model="searchQuery" placeholder="搜索商品" />
    <ul>
      <li v-for="product in filteredProducts" :key="product.id">
        {{ product.name }}
      </li>
    </ul>
    <button @click="prevPage">上一页</button>
    <span>当前页: {{ currentPage }}</span>
    <button @click="nextPage">下一页</button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      searchQuery: '',
      currentPage: 1,
      itemsPerPage: 10
    };
  },
  computed: {
    filteredProducts() {
      return this.products.filter(product => 
        product.name.includes(this.searchQuery)
      ).slice(
        (this.currentPage - 1) * this.itemsPerPage,
        this.currentPage * this.itemsPerPage
      );
    }
  },
  methods: {
    nextPage() {
      this.currentPage++;
    },
    prevPage() {
      if (this.currentPage > 1) this.currentPage--;
    }
  }
};
</script>

关键点总结

  • 数据绑定:使用 v-for 渲染列表,:key 确保性能优化。
  • API 集成:通过 axiosfetch 动态加载数据。
  • 状态管理:复杂场景下使用 Vuex 管理全局状态。
  • 交互扩展:结合事件和计算属性实现搜索、分页等功能。

根据实际需求选择适合的方案,灵活调整代码结构。

标签: 代码商品
分享给朋友:

相关文章

vue本地查询代码实现

vue本地查询代码实现

Vue 本地查询代码实现 在Vue中实现本地查询功能,可以通过以下几种方式实现,具体取决于数据源和查询需求。 使用计算属性进行本地查询 计算属性是Vue中处理响应式数据查询的高效方式,适合基于现有…

jquery代码

jquery代码

以下是关于jQuery代码的常见用法和示例,涵盖基础操作、事件处理、DOM操作等核心功能: 基础语法 jQuery通过$()函数选择元素,支持CSS选择器语法: // 选择所有<p>…

vue实现商品搜索

vue实现商品搜索

实现商品搜索功能 在Vue中实现商品搜索功能,可以通过以下步骤完成。假设有一个商品列表,用户可以通过输入关键词来筛选商品。 1. 准备商品数据 商品数据可以存储在Vue组件的data中,也可以从后…

vue 实现代码

vue 实现代码

Vue 是一个流行的前端框架,用于构建用户界面。以下是一个简单的 Vue 实现代码示例,展示如何创建一个基本的 Vue 应用。 安装 Vue 通过 CDN 引入 Vue: <script…

代码雨实现vue

代码雨实现vue

实现代码雨效果(Vue版) 使用Vue实现代码雨效果可以通过Canvas绘制结合动画帧实现。以下是完整实现方案: 核心代码结构 <template> <div class="c…

vue分页代码实现

vue分页代码实现

Vue 分页代码实现 在 Vue 中实现分页功能通常需要结合后端 API 返回的数据和前端的分页组件。以下是一个完整的实现示例,包括分页组件的封装和与后端数据的交互。 分页组件封装 创建一个可复用…