当前位置:首页 > VUE

vue实现列表点击

2026-03-10 12:27:40VUE

Vue 实现列表点击交互

使用 v-for 渲染列表

通过 v-for 指令动态渲染列表数据,结合 :key 确保渲染性能:

<template>
  <ul>
    <li 
      v-for="(item, index) in items" 
      :key="item.id"
      @click="handleItemClick(item)"
    >
      {{ item.name }}
    </li>
  </ul>
</template>

定义点击事件方法

methods 中定义点击事件处理逻辑,可获取当前点击的列表项数据:

<script>
export default {
  data() {
    return {
      items: [
        { id: 1, name: '选项1' },
        { id: 2, name: '选项2' }
      ]
    }
  },
  methods: {
    handleItemClick(item) {
      console.log('点击项:', item);
      // 执行后续业务逻辑
    }
  }
}
</script>

高亮当前选中项(可选)

通过动态类名实现点击高亮效果:

<li 
  v-for="item in items"
  :class="{ 'active': selectedItem === item }"
  @click="selectedItem = item"
>
  {{ item.name }}
</li>

需在 data 中定义 selectedItem 变量:

data() {
  return {
    selectedItem: null
  }
}

事件修饰符应用

使用 .stop 阻止事件冒泡或 .prevent 阻止默认行为:

<li @click.stop="handleClick">阻止冒泡的点击</li>
<a @click.prevent="handleLinkClick">阻止默认跳转</a>

性能优化建议

对于长列表,建议使用 vue-virtual-scroller 等虚拟滚动方案,避免渲染大量 DOM 节点导致性能下降。事件处理函数应避免复杂计算,必要时使用防抖/节流。

vue实现列表点击

完整示例代码

<template>
  <ul class="item-list">
    <li
      v-for="item in items"
      :key="item.id"
      :class="{ 'active': activeId === item.id }"
      @click="selectItem(item)"
    >
      {{ item.text }}
    </li>
  </ul>
</template>

<script>
export default {
  data() {
    return {
      activeId: null,
      items: [
        { id: 1, text: '列表项1' },
        { id: 2, text: '列表项2' }
      ]
    }
  },
  methods: {
    selectItem(item) {
      this.activeId = item.id
      this.$emit('item-selected', item)
    }
  }
}
</script>

<style>
.item-list li {
  cursor: pointer;
  padding: 8px 12px;
}
.item-list li.active {
  background-color: #eee;
}
</style>

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

相关文章

vue实现发表

vue实现发表

Vue 实现发表功能 在 Vue 中实现发表功能通常涉及表单处理、数据绑定和网络请求。以下是实现步骤和代码示例: 表单设计与数据绑定 创建一个表单用于输入发表内容,使用 v-model 进行数据双向…

vue datepicker 实现

vue datepicker 实现

实现 Vue Datepicker 的基本方法 在 Vue 项目中实现日期选择功能,可以使用第三方库如 vue-datepicker 或 v-calendar。以下是两种常见实现方式: 安装 vue…

vue实现帖子

vue实现帖子

Vue 实现帖子功能 使用 Vue 实现帖子功能需要结合前端框架和后端数据交互,以下是实现的关键步骤和代码示例。 帖子列表展示 创建帖子列表组件,使用 v-for 渲染帖子数据,通过 axios 获…

vue 路由 实现

vue 路由 实现

Vue 路由实现方法 Vue Router 是 Vue.js 的官方路由管理器,用于构建单页面应用(SPA)。以下是实现 Vue 路由的详细步骤: 安装 Vue Router 通过 npm 或 ya…

vue实现剪辑

vue实现剪辑

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

vue 实现单选

vue 实现单选

使用 v-model 绑定单选值 在 Vue 中,可以通过 v-model 绑定单选按钮的值。定义一个响应式数据(如 selectedOption),并将其与单选按钮的 value 属性关联。…