当前位置:首页 > VUE

vue实现标签多选效果

2026-02-21 04:45:30VUE

实现标签多选效果的方法

使用 v-model 绑定数组

通过 v-model 绑定一个数组,可以自动处理多选逻辑。选中的标签值会添加到数组中。

<template>
  <div>
    <label v-for="tag in tags" :key="tag">
      <input type="checkbox" v-model="selectedTags" :value="tag">
      {{ tag }}
    </label>
  </div>
</template>

<script>
export default {
  data() {
    return {
      tags: ['Vue', 'React', 'Angular', 'Svelte'],
      selectedTags: []
    }
  }
}
</script>

自定义标签组件

封装一个可复用的标签多选组件,支持样式定制和交互逻辑。

<template>
  <div class="tag-selector">
    <div 
      v-for="tag in tags" 
      :key="tag" 
      class="tag" 
      :class="{ 'active': selectedTags.includes(tag) }"
      @click="toggleTag(tag)"
    >
      {{ tag }}
    </div>
  </div>
</template>

<script>
export default {
  props: {
    tags: {
      type: Array,
      required: true
    }
  },
  data() {
    return {
      selectedTags: []
    }
  },
  methods: {
    toggleTag(tag) {
      const index = this.selectedTags.indexOf(tag)
      if (index === -1) {
        this.selectedTags.push(tag)
      } else {
        this.selectedTags.splice(index, 1)
      }
    }
  }
}
</script>

<style>
.tag {
  display: inline-block;
  padding: 4px 8px;
  margin: 4px;
  border: 1px solid #ccc;
  cursor: pointer;
}
.tag.active {
  background-color: #42b983;
  color: white;
}
</style>

结合第三方库

使用如 vue-multiselect 等第三方库快速实现标签多选功能。

安装依赖:

npm install vue-multiselect

示例代码:

vue实现标签多选效果

<template>
  <multiselect
    v-model="selectedTags"
    :options="tags"
    :multiple="true"
    :close-on-select="false"
    placeholder="选择标签"
  ></multiselect>
</template>

<script>
import Multiselect from 'vue-multiselect'
export default {
  components: { Multiselect },
  data() {
    return {
      tags: ['Vue', 'React', 'Angular'],
      selectedTags: []
    }
  }
}
</script>

<style src="vue-multiselect/dist/vue-multiselect.css"></style>

注意事项

  • 动态标签数据需通过 API 获取时,可在 createdmounted 钩子中加载
  • 选中状态持久化可通过 localStorage 或配合 Vuex 实现
  • 移动端需考虑触摸反馈和布局适配

标签: 多选效果
分享给朋友:

相关文章

vue实现多选div

vue实现多选div

实现多选 Div 的基本思路 在 Vue 中实现多选 Div 功能,通常需要结合 v-model 或自定义事件管理选中状态,通过 CSS 类动态切换样式。核心逻辑包括数据绑定、状态管理和样式交互。…

vue实现突出效果

vue实现突出效果

Vue 实现突出效果的方法 在 Vue 中实现突出效果通常涉及动态样式绑定、动画过渡或第三方库的使用。以下是几种常见实现方式: 动态类名绑定 通过 v-bind:class 或简写 :class 实…

vue循环实现多选

vue循环实现多选

Vue循环实现多选的方法 在Vue中实现多选功能,可以通过v-for循环渲染选项,结合v-model绑定数组来记录选中的值。以下是具体实现方式: 基础实现方案 数据准备 在组件的data中定义选项…

vue实现多选 全选

vue实现多选 全选

实现多选和全选功能 在Vue中实现多选和全选功能可以通过以下方式完成。假设有一个列表数据,需要实现勾选部分项或一键全选。 数据准备 定义一个数据列表和选中项的数组,以及全选状态。 data…

react如何添加效果

react如何添加效果

React 添加动画效果的方法 使用 CSS 过渡动画 在 React 组件中直接通过 className 或 style 属性应用 CSS 过渡效果。定义 CSS 类包含 transition 属性…

vue实现多选下拉

vue实现多选下拉

Vue 实现多选下拉 使用 Vue 实现多选下拉可以通过原生 HTML <select> 元素结合 Vue 的双向绑定,或者使用第三方组件库如 Element UI、Vuetify 等。以…