当前位置:首页 > 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实现生成二维码

使用qrcode.vue库生成二维码 安装qrcode.vue库: npm install qrcode.vue --save 在Vue组件中使用: <template> <…

vue实现剪辑

vue实现剪辑

Vue 实现视频剪辑功能 在Vue中实现视频剪辑功能通常需要结合HTML5的<video>元素和第三方库(如FFmpeg.js或Video.js)。以下是几种常见的实现方法: 使用FFm…

vue实现 toast

vue实现 toast

Vue 实现 Toast 组件 在 Vue 中实现 Toast 组件可以通过多种方式完成,以下是几种常见的方法: 使用全局组件和事件总线 创建一个全局的 Toast 组件,并通过事件总线或 Vue…

vue 实现注册

vue 实现注册

Vue 实现注册功能 注册功能通常包括表单验证、数据提交和用户反馈。以下是实现注册功能的步骤: 1. 创建注册表单组件 在 Vue 项目中创建一个注册表单组件,包含用户名、邮箱、密码等输入字段。…

vue实现白板

vue实现白板

Vue实现白板功能 使用Vue实现白板功能可以通过HTML5的Canvas API结合Vue的响应式特性来完成。以下是实现白板功能的关键步骤: 安装依赖 在Vue项目中安装必要的依赖,如vue-dr…

vue实现兼容

vue实现兼容

Vue 兼容性实现方案 Vue.js 的兼容性主要涉及对不同浏览器、Vue 版本以及第三方库的支持。以下是常见的兼容性解决方案: 浏览器兼容性 使用 Babel 转换 ES6+ 代码为 ES5 语…