当前位置:首页 > 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 SSG实现

vue SSG实现

Vue SSG 实现方法 Vue 的静态站点生成(SSG)可以通过多种工具和框架实现,以下是几种常见的方法: 使用 VuePress VuePress 是一个基于 Vue 的静态站点生成器,适合文档…

vue router 实现

vue router 实现

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

vue登录实现

vue登录实现

Vue 登录实现 实现登录功能通常需要前端与后端配合,Vue 作为前端框架,主要负责表单处理、请求发送和状态管理。以下是常见的实现方式: 表单设计与数据绑定 使用 Vue 的 v-model 实现表…

vue 实现跳转

vue 实现跳转

Vue 实现页面跳转的方法 在 Vue 中实现页面跳转通常可以通过以下几种方式实现,具体选择取决于项目需求和技术栈(如是否使用 Vue Router)。 使用 Vue Router 进行编程式导航…

vue实现追加

vue实现追加

追加数据到数组或列表 在Vue中追加数据到数组或列表,可以通过push方法或concat方法实现。以下是几种常见的实现方式: 方法一:使用push方法 this.items.push(newIte…

vue实现eventbus

vue实现eventbus

Vue 中实现 EventBus 在 Vue 中,EventBus 是一种跨组件通信的机制,尤其适用于非父子组件之间的数据传递。以下是实现 EventBus 的几种方法: 方法一:使用 Vue 实例…