当前位置:首页 > VUE

vue实现品牌列表

2026-01-17 09:05:15VUE

实现品牌列表的Vue方案

使用Vue 3组合式API

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

<script setup>
import { ref, computed } from 'vue'

const brands = ref([
  { id: 1, name: 'Nike', origin: 'USA' },
  { id: 2, name: 'Adidas', origin: 'Germany' }
])

const searchQuery = ref('')

const filteredBrands = computed(() => {
  return brands.value.filter(brand => 
    brand.name.toLowerCase().includes(searchQuery.value.toLowerCase())
  )
})
</script>

使用Vue 2选项式API

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

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

从API获取品牌数据

<script setup>
import { ref, onMounted } from 'vue'

const brands = ref([])

onMounted(async () => {
  const response = await fetch('https://api.example.com/brands')
  brands.value = await response.json()
})
</script>

添加分页功能

const currentPage = ref(1)
const itemsPerPage = 5

const paginatedBrands = computed(() => {
  const start = (currentPage.value - 1) * itemsPerPage
  return filteredBrands.value.slice(start, start + itemsPerPage)
})

使用UI组件库优化显示

<template>
  <el-table :data="filteredBrands" style="width: 100%">
    <el-table-column prop="name" label="品牌名称"></el-table-column>
    <el-table-column prop="origin" label="国家"></el-table-column>
  </el-table>
</template>

品牌卡片式布局

<template>
  <div class="brand-grid">
    <div v-for="brand in filteredBrands" :key="brand.id" class="brand-card">
      <img :src="brand.logo" :alt="brand.name" />
      <h3>{{ brand.name }}</h3>
    </div>
  </div>
</template>

<style>
.brand-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 20px;
}
.brand-card {
  border: 1px solid #eee;
  padding: 15px;
  text-align: center;
}
</style>

vue实现品牌列表

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

相关文章

vue实现静态查询

vue实现静态查询

Vue 实现静态查询 在 Vue 中实现静态查询通常指不依赖后端接口,直接在前端处理数据筛选或搜索功能。以下是几种常见实现方式: 使用计算属性过滤数据 通过计算属性对静态数据进行筛选,适合简单查询场…

vue实现文档导入

vue实现文档导入

Vue 实现文档导入的方法 在 Vue 中实现文档导入功能通常涉及文件上传、解析和处理。以下是几种常见的方法: 使用原生文件输入和 FileReader 通过 HTML 的原生 <input…

vue实现屏幕共享

vue实现屏幕共享

Vue 实现屏幕共享的方法 使用 WebRTC 和 getDisplayMedia API 通过 navigator.mediaDevices.getDisplayMedia 捕获屏幕内容,结合 We…

vue实现sql操作

vue实现sql操作

在Vue中实现SQL操作通常需要结合后端服务或本地数据库技术,因为前端JavaScript无法直接连接SQL数据库。以下是几种常见的实现方式: 通过API与后端交互 Vue前端通过HTTP请求(如a…

前端vue登录功能实现

前端vue登录功能实现

Vue 登录功能实现步骤 创建登录表单组件 在 Vue 项目中创建一个登录组件,通常命名为 Login.vue。该组件包含用户名和密码输入框以及提交按钮。 <template> &…

vue搜索过后实现分页

vue搜索过后实现分页

Vue 实现搜索后分页功能 数据绑定与搜索逻辑 在 Vue 组件中定义必要的数据属性: data() { return { searchQuery: '', currentPag…