当前位置:首页 > VUE

vue实现品牌列表

2026-02-18 01:38:25VUE

使用Vue实现品牌列表

在Vue中实现品牌列表可以通过以下方法完成,涵盖数据绑定、组件化、API交互等核心功能。

数据准备与绑定

创建Vue实例或组件时,定义品牌数据数组,通常从API获取或本地模拟。使用v-for指令渲染列表。

<template>
  <div>
    <ul>
      <li v-for="brand in brands" :key="brand.id">
        {{ brand.name }}
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      brands: [
        { id: 1, name: 'Nike' },
        { id: 2, name: 'Adidas' }
      ]
    }
  }
}
</script>

动态获取品牌数据

通过axiosfetch从后端API获取品牌数据,通常在createdmounted生命周期钩子中发起请求。

vue实现品牌列表

<script>
import axios from 'axios';

export default {
  data() {
    return {
      brands: []
    }
  },
  async created() {
    try {
      const response = await axios.get('/api/brands');
      this.brands = response.data;
    } catch (error) {
      console.error('获取品牌数据失败:', error);
    }
  }
}
</script>

添加品牌筛选功能

通过计算属性或方法实现品牌搜索筛选,结合v-model绑定输入框。

<template>
  <div>
    <input v-model="searchQuery" placeholder="搜索品牌">
    <ul>
      <li v-for="brand in filteredBrands" :key="brand.id">
        {{ brand.name }}
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      searchQuery: '',
      brands: [
        { id: 1, name: 'Nike' },
        { id: 2, name: 'Adidas' }
      ]
    }
  },
  computed: {
    filteredBrands() {
      return this.brands.filter(brand => 
        brand.name.toLowerCase().includes(this.searchQuery.toLowerCase())
      );
    }
  }
}
</script>

使用组件化拆分

将品牌列表项抽离为独立组件,提升代码复用性。

vue实现品牌列表

<template>
  <div>
    <brand-item 
      v-for="brand in brands" 
      :key="brand.id" 
      :brand="brand"
    />
  </div>
</template>

<script>
import BrandItem from './BrandItem.vue';

export default {
  components: { BrandItem },
  data() {
    return {
      brands: [
        { id: 1, name: 'Nike' },
        { id: 2, name: 'Adidas' }
      ]
    }
  }
}
</script>

品牌项组件示例

创建BrandItem.vue文件,接收brand prop并渲染单个品牌信息。

<template>
  <div class="brand-item">
    <h3>{{ brand.name }}</h3>
  </div>
</template>

<script>
export default {
  props: {
    brand: {
      type: Object,
      required: true
    }
  }
}
</script>

添加分页功能

结合后端分页API,使用分页组件(如el-pagination)控制数据加载。

<template>
  <div>
    <ul>
      <li v-for="brand in brands" :key="brand.id">
        {{ brand.name }}
      </li>
    </ul>
    <el-pagination
      @current-change="handlePageChange"
      :current-page="currentPage"
      :page-size="pageSize"
      :total="totalBrands"
    />
  </div>
</template>

<script>
export default {
  data() {
    return {
      currentPage: 1,
      pageSize: 10,
      totalBrands: 0,
      brands: []
    }
  },
  methods: {
    async handlePageChange(page) {
      this.currentPage = page;
      await this.fetchBrands();
    },
    async fetchBrands() {
      const response = await axios.get('/api/brands', {
        params: { page: this.currentPage, size: this.pageSize }
      });
      this.brands = response.data.items;
      this.totalBrands = response.data.total;
    }
  }
}
</script>

标签: 品牌列表vue
分享给朋友:

相关文章

vue实现安全免登录

vue实现安全免登录

Vue 实现安全免登录的方案 免登录功能通常通过持久化认证状态(如 Token)实现,但需兼顾安全性。以下是基于 Vue 的常见实现方案: 基于 Token 的免登录 登录成功后存储 Toke…

vue实现流程

vue实现流程

Vue 实现流程的基本步骤 安装 Vue.js 可以通过 CDN 引入或使用 npm/yarn 安装。 CDN 方式: <script src="https://cdn.jsdelivr…

vue实现批量

vue实现批量

Vue 实现批量操作的方法 在 Vue 中实现批量操作通常涉及选择多个项目并执行统一处理,例如批量删除、批量更新等。以下是几种常见实现方式: 表格多选批量操作 使用 el-table 配合复选框实现…

vue实现博客

vue实现博客

Vue 实现博客的基本步骤 使用 Vue.js 实现一个博客系统可以分为前端和后端两部分。以下是基于 Vue 的前端实现方案,后端可以选择 Node.js、Django 或其他框架。 项目初始化…

vue实现看板

vue实现看板

Vue 实现看板功能 使用 Vue 实现看板功能可以通过组件化开发、状态管理和拖拽库结合完成。以下是一个完整的实现方案: 基础项目结构 src/ ├── components/ │ ├── K…

实现vue datepicker

实现vue datepicker

安装依赖 使用 vue-datepicker 或第三方库如 v-calendar 或 vue2-datepicker。以 vue2-datepicker 为例: npm install vue…