当前位置:首页 > 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 获取商品数据。

<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 集中管理商品和购物车状态。

// 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>

分页与筛选

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

vue实现商品列表代码

<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 CLI快速初始化项目,确保已安装Node.js和npm/yarn: npm install -g @vue/cli vue create my-vue-project c…

vue实现商品sku

vue实现商品sku

Vue 实现商品 SKU 选择功能 数据结构设计 商品 SKU 通常由多个属性组合而成,例如颜色、尺寸等。需要设计一个嵌套数据结构来存储这些信息。 data() { return { s…

vue实现商品列表总价

vue实现商品列表总价

实现商品列表总价计算 在Vue中实现商品列表总价计算,通常涉及数据绑定、计算属性和方法调用。以下是一种常见的实现方式: 数据准备 商品列表数据通常存储在组件的data或props中,每个商品对象应包…

vue 实现 代码编辑功能

vue 实现 代码编辑功能

实现代码编辑功能的基本思路 在Vue中实现代码编辑功能通常需要借助第三方库,例如Monaco Editor(VS Code使用的编辑器)或CodeMirror。以下是两种常见方案的实现方法。 使用M…

react代码如何优化

react代码如何优化

使用 React.memo 进行组件优化 通过 React.memo 对函数组件进行记忆化,避免不必要的重新渲染。只有当组件的 props 发生变化时才会重新渲染。 const MyCompon…

如何预览react代码

如何预览react代码

预览 React 代码的方法 本地开发环境预览 安装 Node.js 和 npm/yarn,通过 create-react-app 或 Vite 创建项目后,运行开发服务器(如 npm start)。…