当前位置:首页 > 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);
        });
    }
  }
};

添加搜索功能

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

vue实现产品列表

<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 产品列表功能,并根据需求扩展更多特性。

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

相关文章

网页制作css 列表

网页制作css 列表

创建CSS列表样式 使用CSS可以自定义HTML列表(有序列表<ol>和无序列表<ul>)的外观,包括项目符号、缩进、颜色等。以下是一些常见的列表样式方法: 基础列表样式 通…

weex  vue 实现列表

weex vue 实现列表

weex + Vue 实现列表的方法 使用<list>和<cell>组件 在weex中,列表通常通过<list>和<cell>组件实现。<list…

vue实现列表多选

vue实现列表多选

Vue 实现列表多选的方法 使用 v-model 绑定数组 通过 v-model 绑定一个数组,可以轻松实现多选功能。当复选框被选中或取消选中时,数组会自动更新。 <template>…

vue实现竖向列表

vue实现竖向列表

Vue 实现竖向列表的方法 使用 v-for 指令 通过 Vue 的 v-for 指令可以轻松渲染一个竖向列表。假设有一个数组 items,可以通过以下方式渲染: <template>…

vue实现伸缩列表

vue实现伸缩列表

Vue 实现伸缩列表的方法 使用 Vue 实现伸缩列表可以通过动态绑定样式或类名,结合过渡效果实现平滑的展开和收起动画。以下是几种常见实现方式: 动态绑定高度 通过 v-if 或 v-show 控制…

vue实现卡片列表

vue实现卡片列表

Vue 实现卡片列表 使用 v-for 动态渲染卡片列表 通过 Vue 的 v-for 指令可以动态渲染卡片列表,数据通常存储在组件的 data 或通过 API 获取。 <template&g…