当前位置:首页 > VUE

vue实现产品列表

2026-01-17 23:40:28VUE

Vue 实现产品列表的方法

使用 Vue CLI 创建项目

安装 Vue CLI 并初始化项目,确保项目环境配置正确。

npm install -g @vue/cli
vue create product-list
cd product-list

创建产品数据模型

src 目录下创建 data/products.js 文件,定义产品数据。

export default [
  { id: 1, name: '产品A', price: 100, description: '描述A' },
  { id: 2, name: '产品B', price: 200, description: '描述B' },
  { id: 3, name: '产品C', price: 300, description: '描述C' }
];

创建产品列表组件

src/components 目录下创建 ProductList.vue 文件,实现列表渲染。

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

<script>
import products from '@/data/products';

export default {
  data() {
    return {
      products: products
    };
  }
};
</script>

<style scoped>
.product-list {
  margin: 20px;
}
ul {
  list-style: none;
  padding: 0;
}
li {
  margin-bottom: 10px;
  padding: 10px;
  border: 1px solid #ddd;
}
</style>

在父组件中引入

App.vue 中引入并使用 ProductList 组件。

<template>
  <div id="app">
    <ProductList />
  </div>
</template>

<script>
import ProductList from './components/ProductList.vue';

export default {
  components: {
    ProductList
  }
};
</script>

动态加载数据

如果需要从 API 动态加载数据,可以使用 axiosfetch

<script>
import axios from 'axios';

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

添加分页功能

使用 v-pagination 组件或自定义分页逻辑实现分页。

<template>
  <div>
    <ProductList :products="paginatedProducts" />
    <div class="pagination">
      <button 
        v-for="page in totalPages" 
        :key="page" 
        @click="currentPage = page"
        :class="{ active: currentPage === page }"
      >
        {{ page }}
      </button>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      products: [],
      currentPage: 1,
      itemsPerPage: 5
    };
  },
  computed: {
    totalPages() {
      return Math.ceil(this.products.length / this.itemsPerPage);
    },
    paginatedProducts() {
      const start = (this.currentPage - 1) * this.itemsPerPage;
      const end = start + this.itemsPerPage;
      return this.products.slice(start, end);
    }
  }
};
</script>

使用 Vuex 管理状态

对于复杂应用,可以使用 Vuex 集中管理产品数据状态。

// store/modules/products.js
export default {
  state: {
    products: []
  },
  mutations: {
    SET_PRODUCTS(state, products) {
      state.products = products;
    }
  },
  actions: {
    fetchProducts({ commit }) {
      axios.get('https://api.example.com/products')
        .then(response => {
          commit('SET_PRODUCTS', response.data);
        });
    }
  }
};

添加搜索功能

在组件中实现搜索逻辑,过滤产品列表。

<template>
  <div>
    <input v-model="searchQuery" placeholder="搜索产品" />
    <ProductList :products="filteredProducts" />
  </div>
</template>

<script>
export default {
  data() {
    return {
      products: [],
      searchQuery: ''
    };
  },
  computed: {
    filteredProducts() {
      return this.products.filter(product => 
        product.name.toLowerCase().includes(this.searchQuery.toLowerCase())
      );
    }
  }
};
</script>

通过以上方法,可以灵活实现 Vue 产品列表功能,并根据需求扩展更多特性。

vue实现产品列表

标签: 列表产品
分享给朋友:

相关文章

vue实现列表页

vue实现列表页

Vue 实现列表页的方法 数据绑定与渲染 使用 v-for 指令动态渲染列表数据,结合 :key 确保渲染性能。示例代码: <template> <ul> <…

vue实现列表页面

vue实现列表页面

Vue 列表页面实现方案 基础列表渲染 使用 v-for 指令渲染数组数据,配合 :key 提升性能: <template> <ul> <li v-for=…

vue实现虚拟列表

vue实现虚拟列表

虚拟列表的概念 虚拟列表(Virtual List)是一种优化长列表渲染性能的技术,通过仅渲染可视区域内的元素,减少DOM节点数量,从而提升页面性能。适用于数据量大的场景(如表格、下拉选择器等)。…

vue实现索引列表

vue实现索引列表

Vue 实现索引列表 使用第三方库(如 better-scroll 或 vue-index-list) 安装 better-scroll 或 vue-index-list 库,可以快速实现带索引的列表…

vue实现多级列表

vue实现多级列表

实现多级列表的两种常见方法 递归组件法 通过组件递归调用自身实现嵌套渲染,适合动态层级数据。 定义组件时通过name属性使其可递归调用。 模板中使用v-for遍历数据,嵌套部分通过条件渲染递…

vue实现模拟列表

vue实现模拟列表

使用 Vue 实现模拟列表 在 Vue 中实现模拟列表可以通过多种方式完成,常见的方法包括使用 v-for 指令动态渲染数据、结合计算属性或方法进行列表操作。以下是一个完整的实现方案: 基础列表…