当前位置:首页 > VUE

vue实现品牌列表

2026-01-17 09:05:15VUE

vue实现品牌列表

实现品牌列表的Vue方案

使用Vue 3组合式API

vue实现品牌列表

<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项目中实现打印功能可以通过多种方式完成,以下是几种常见的方法: 使用window.print()方法 这是最简单的打印方式,直接调用浏览器的打印功能。 meth…

vue实现按卡片轮播

vue实现按卡片轮播

实现卡片轮播的基本思路 在Vue中实现卡片轮播可以通过结合v-for指令和动态样式绑定完成。核心是维护一个当前显示卡片的索引,通过CSS过渡效果实现平滑切换。 基础实现步骤 模板部分 使用v-for…

vue实现setinterval

vue实现setinterval

在 Vue 中使用 setInterval Vue 中可以通过生命周期钩子和方法结合 setInterval 实现定时任务。以下是一个完整的实现示例: <template> <…

vue  实现tab

vue 实现tab

实现 Tab 切换功能 在 Vue 中实现 Tab 切换功能可以通过动态组件或条件渲染完成。以下是两种常见方法: 使用 v-if 或 v-show 实现条件渲染 通过绑定 currentTab 变量…

vue 绑定实现

vue 绑定实现

Vue 绑定实现 Vue 提供了多种数据绑定的方式,包括文本插值、属性绑定、事件绑定、双向绑定等。以下是常见的绑定实现方法: 文本插值 使用双大括号 {{ }} 进行文本插值,将数据动态渲染到 DO…

vue键盘实现

vue键盘实现

监听键盘事件 在Vue中监听键盘事件可以通过v-on指令或@缩写实现。常见的键盘事件包括keydown、keyup和keypress。例如监听回车键事件: <template> &l…