当前位置:首页 > 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 中定义点击事件处理逻辑,可获取当前点击的列表项数据:

vue实现列表点击

<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 变量:

vue实现列表点击

data() {
  return {
    selectedItem: null
  }
}

事件修饰符应用

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

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

性能优化建议

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

完整示例代码

<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 的异步组件允许将组件按需加载,通常用于代码分割或延迟加载非关键组件。其核心原理基于 Promise 和动态导入。 基本实现方式 通过 defineAsyncComp…

vue评分实现

vue评分实现

Vue 评分组件实现方法 使用第三方库(如 Element UI) 安装 Element UI: npm install element-ui 引入并注册组件: import Vue from '…

vue路由实现

vue路由实现

Vue 路由实现 Vue Router 是 Vue.js 的官方路由管理器,用于构建单页面应用(SPA)。以下是 Vue Router 的基本实现步骤和核心功能。 安装 Vue Router 通过…

vue滚动实现

vue滚动实现

Vue 滚动实现方法 使用原生滚动 在 Vue 中可以通过 ref 获取 DOM 元素,调用原生滚动方法实现滚动效果。适用于简单场景。 <template> <div ref=…

vue实现导入

vue实现导入

Vue 实现文件导入功能 使用 <input type="file"> 元素 在 Vue 模板中添加一个文件输入元素,绑定 change 事件处理函数。 <template>…

vue实现select

vue实现select

Vue 实现 Select 组件的方法 在 Vue 中实现 Select 组件可以通过多种方式完成,以下是几种常见的方法: 使用原生 HTML select 元素 原生 HTML 的 <sel…