当前位置:首页 > VUE

vue实现水果列表案例

2026-02-22 18:28:41VUE

Vue 实现水果列表案例

数据准备与组件结构

在 Vue 项目中创建一个水果列表的数据结构,通常使用数组存储水果信息,每个水果对象包含名称、价格、图片等属性。例如:

data() {
  return {
    fruits: [
      { id: 1, name: '苹果', price: 5, image: 'apple.jpg' },
      { id: 2, name: '香蕉', price: 3, image: 'banana.jpg' },
      { id: 3, name: '橙子', price: 4, image: 'orange.jpg' }
    ]
  }
}

列表渲染

使用 v-for 指令遍历水果数组,动态生成列表项。通过 :key 绑定唯一标识(如 id)优化渲染性能。

vue实现水果列表案例

<ul class="fruit-list">
  <li v-for="fruit in fruits" :key="fruit.id">
    <img :src="fruit.image" :alt="fruit.name">
    <span>{{ fruit.name }}</span>
    <span>¥{{ fruit.price }}</span>
  </li>
</ul>

样式设计

通过 CSS 美化列表布局,建议使用 Flexbox 或 Grid 实现响应式排列。例如:

.fruit-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 20px;
}
.fruit-list li {
  border: 1px solid #eee;
  padding: 10px;
  text-align: center;
}

交互功能增强

添加点击事件或购物车功能,例如点击水果时触发方法:

vue实现水果列表案例

<li v-for="fruit in fruits" @click="addToCart(fruit)">
  <!-- 列表内容 -->
</li>
methods: {
  addToCart(fruit) {
    console.log(`已添加 ${fruit.name} 到购物车`);
  }
}

动态过滤与搜索

通过 v-model 绑定搜索输入框,使用计算属性实现实时过滤:

<input v-model="searchQuery" placeholder="搜索水果">
computed: {
  filteredFruits() {
    return this.fruits.filter(fruit => 
      fruit.name.includes(this.searchQuery)
    );
  }
}

完整组件示例

将以上逻辑整合为单文件组件(SFC):

<template>
  <div>
    <input v-model="searchQuery" placeholder="搜索水果">
    <ul class="fruit-list">
      <li 
        v-for="fruit in filteredFruits" 
        :key="fruit.id"
        @click="addToCart(fruit)"
      >
        <img :src="fruit.image" :alt="fruit.name">
        <span>{{ fruit.name }}</span>
        <span>¥{{ fruit.price }}</span>
      </li>
    </ul>
  </div>
</template>

<script>
export default {
  data() {
    return {
      searchQuery: '',
      fruits: [
        { id: 1, name: '苹果', price: 5, image: 'apple.jpg' },
        { id: 2, name: '香蕉', price: 3, image: 'banana.jpg' }
      ]
    }
  },
  computed: {
    filteredFruits() {
      return this.fruits.filter(fruit => 
        fruit.name.includes(this.searchQuery)
      );
    }
  },
  methods: {
    addToCart(fruit) {
      alert(`已添加 ${fruit.name}`);
    }
  }
}
</script>

<style scoped>
/* 样式代码 */
</style>

标签: 水果案例
分享给朋友:

相关文章

vue实现页面各种案例

vue实现页面各种案例

Vue 实现页面常见案例 动态表单生成 使用 v-for 和 v-model 动态渲染表单字段,适合问卷或配置类场景。通过数据驱动表单结构,字段类型可扩展为输入框、下拉框等。 <templat…

css案例制作

css案例制作

CSS案例制作指南 响应式导航栏 通过Flexbox或Grid布局实现自适应导航栏,兼容移动端与桌面端。关键代码: .navbar { display: flex; justify-cont…

jquery 案例

jquery 案例

以下是一些实用的 jQuery 案例,涵盖常见功能实现和交互效果: 动态内容加载 通过 AJAX 加载内容并更新页面部分区域: $('#loadBtn').click(function() {…

uniapp案例大全

uniapp案例大全

uniapp案例大全 以下是一些常见的uniapp案例分类及示例,涵盖多个行业和场景: 电商类应用 京东购物:uniapp开发的跨端电商应用,支持商品展示、购物车、订单管理等功能。 拼多多小程序:利…

php 案例代码 实现

php 案例代码 实现

以下是几个PHP实用案例代码示例,涵盖常见开发场景: 用户登录验证 <?php session_start(); $username = $_POST['username']; $pass…

vue实现酒店案例

vue实现酒店案例

Vue实现酒店案例的关键步骤 项目初始化与依赖安装 使用Vue CLI创建项目,安装必要依赖如vue-router、axios、element-ui等。通过npm install vue-router…