【区分vue2和vue3下的element UI Select 选择器组件,分别详细介绍属性,事件,方法如何使用,并举例】

在 Vue 2 的 Element UI 和 Vue 3 的 Element Plus 中,el-select 选择器组件是一个常用的表单控件,用于从一组选项中选择一个或多个值。以下是对这两个版本下 el-select 组件的属性、事件和方法的详细介绍,并附带示例。

Vue 2 的 Element UI

el-select

属性

  • v-model / value:绑定值,即选中的值
  • multiple:是否多选
  • disabled:是否禁用
  • placeholder:占位符
  • clearable:是否可以清空选项
  • filterable:是否可搜索
  • allow-create:是否允许用户创建新条目,需配合 filterable 使用
  • remote:是否使用远程搜索
  • remote-method:远程搜索方法
  • loading:是否正在加载远程数据
  • loading-text:加载远程数据时的文本提示
  • reserve-keyword:多选且可搜索时,是否保留关键字
  • collapse-tags:多选时是否将选中值按文字的形式展示
  • multiple-limit:多选时用户最多可以选择的项目个数
  • size:选择器尺寸
  • popper-class:下拉列表的类名
  • default-first-option:在选中项发生变化时,是否将第一个选项作为默认值
  • ...(其他原生 select 属性)

事件

  • change:选中值发生变化时触发
  • visible-change:下拉列表的显示状态发生变化时触发
  • remove-tag:多选模式下移除 tag 时触发
  • clear:在可清空模式下点击清空按钮时触发
  • blur:失去焦点时触发
  • focus:获得焦点时触发
  • ...(其他原生 select 事件)

方法 (Element UI 的 el-select 没有直接提供方法,但可以通过属性和事件来控制其行为)

示例

vue 复制代码
<template>
  <el-select v-model="value" placeholder="请选择">
    <el-option
      v-for="item in options"
      :key="item.value"
      :label="item.label"
      :value="item.value">
    </el-option>
  </el-select>
</template>

<script>
export default {
  data() {
    return {
      value: '',
      options: [{
        value: 'Option1',
        label: '黄金糕'
      }, {
        value: 'Option2',
        label: '双皮奶'
      }, /* ...其他选项... */ ]
    };
  },
  watch: {
    value(newVal, oldVal) {
      console.log('值已改变:', newVal);
    }
  }
};
</script>

Vue 3 的 Element Plus

在 Element Plus 中,el-select 的使用与 Vue 2 中的 Element UI 非常相似,但可能有一些新增或调整的属性、事件和方法。你应该查阅 Element Plus 的官方文档以获取最新的信息。

属性事件方法 的大部分与 Vue 2 中的 Element UI 相同,但可能会有一些变化或增加。

示例(在 Vue 3 中使用 Composition API):

vue 复制代码
<template>
  <el-select v-model="value" placeholder="请选择">
    <el-option
      v-for="item in options"
      :key="item.value"
      :label="item.label"
      :value="item.value">
    </el-option>
  </el-select>
</template>

<script>
import { ref } from 'vue';

export default {
  setup() {
    const value = ref('');
    const options = ref([
      { value: 'Option1', label: '黄金糕' },
      { value: 'Option2', label: '双皮奶' },
      /* ...其他选项... */
    ]);

    const handleChange = (newVal) => {
      console.log('值已改变:', newVal);
    };

    return {
      value,
      options,
      handleChange
    };
  },
  watch: {
    value(newVal, oldVal) {
      // 这里可以使用 Composition API 的 watch 替代 Vue 2 的 data watcher
      console.log('值已改变:', newVal
相关推荐
我的心巴14 小时前
vue-print-nb 打印相关问题
前端·vue.js·elementui
Amy_cx1 天前
在表单输入框按回车页面刷新的问题
前端·elementui
xiaogg36781 天前
网站首页菜单顶部下拉上下布局以及可关闭标签页实现vue+elementui
javascript·vue.js·elementui
白云~️2 天前
table表格合并,循环渲染样式
javascript·vue.js·elementui
夏之小星星2 天前
解决el-select选择框右侧下拉箭头遮挡文字问题
前端·vue.js·elementui
xiaogg36782 天前
网站首页菜单两种布局vue+elementui顶部和左侧栏导航
前端·vue.js·elementui
Luffe船长3 天前
elementUI点击浏览table所选行数据查看文档
javascript·elementui·vue
入行IT两年半3 天前
element-plus 单选组件 el-radio,选不上,又没报错,直接复制官网也不行解决方案
前端·vue.js·elementui
IT瘾君3 天前
JavaWeb:前端工程化-ElementPlus
前端·elementui·node.js·vue
William Dawson4 天前
【从前端到后端导入excel文件实现批量导入-笔记模仿芋道源码的《系统管理-用户管理-导入-批量导入》】
java·前端·笔记·elementui·typescript·excel