Vue.js的可访问选择下拉组件 - vue-accessible-selects

Vue.js的可访问选择下拉组件 - vue-accessible-selects
插件名称 vue-accessible-selects
版本号 v0.13.1
发布时间 2020年10月24日
插件作者 politico

一个自定义,可访问,可搜索的select下拉组件,它支持多项选择。

变更日志:

v0.13.1(03/20/2021)

  • 修复:修复滚动到焦点选项

v0.13.0(02/25/2021)

  • 重构

v0.12.0(2020年12月21日)

  • 更新 prop 名称

v0.11.2(2020/12/18)

  • 修复:更改selectedIndex后更新activeIndex

v0.11.0(12/12/2020)

  • 壮举:添加加载插槽

v0.10.0(12/10/2020)

  • 更改时发出过滤的选项以及输入值

v0.8.2(11/22/2020)

  • 修复点击时更改所选选项

v0.8.1(11/19/2020)

  • SelectSingle –将选项选择的类添加到所选选项

v0.8.0(11/11/2020)

  • 在加载时添加观察程序以调用打开过滤器选项

v0.7.1(11/07/2020)

  • 更新

v0.7.0(10/29/2020)

  • 添加加载道具。添加图标槽

v0.6.0(10/28/2020)

  • 添加可选的无结果消息

如何使用它:

1.将组件导入Vue项目。

import { 
  // 单选
  SelectSingle, 
  //  多选
  SelectMulti, 
  // 核心
  SelectOption 
} from '@politico/vue-accessible-selects'

2.将单个和多个选择组件添加到模板。

<SelectSingle
  v-model="selectSingleValue"
  :options="myOptions"
  label="Single Select"
  :labelIsVisible="true"
  @select="handleSelectEvent"
/>
<SelectMulti
  v-model="selectMultiValues"
  :options="myOptions"
  label="Multiple Select"
  :labelIsVisible="true"
  placeholder="Placeholder"
  @select="handleSelectEvent"
  @remove="handleRemoveEvent"
  @searchChange="handleSearchChangeEvent"
/>

3.注册组件并定义要在选择中显示的数据。

const myOptions: SelectOption[] = [{
  label: 'Option 1',
  value: 'option1'
}, {
  label: 'Option 2',
  value: 'option2'
}, {
  label: 'Option 3',
  value: 'option3'
}]
export default Vue.extend({
  components: { SelectSingle, SelectMulti },
  data() {
    return {
      myOptions,
      selectSingleValue: {} as SelectOption,
      selectMultiValues: [] as SelectOption[]
    }
  },
  methods: {
    handleSelectEvent(selectedValue: SelectOption) {
      // 做点什么
    },
    handleRemoveEvent(selectedValue: SelectOption) {
      // 做点什么
    },
    handleSearchChangeEvent(inputValue: string) {
      // 做点什么
    }
  }
})

4.所有默认组件道具。

disabled: {
  type: Boolean,
  default: false
},
label: {
  type: String,
  required: true
},
options: {
  type: Array as () => SelectOption[],
  required: true
},
labelIsVisible: {
  type: Boolean,
  required: false,
  default: true
},
placeholder: {
  type: String,
  required: false,
  default: () => null
},
displayPillsBelowInput: {
  type: Boolean,
  default: false
},
// 无需道具设置,只需使用v-model即可
values: {
  type: Array as () => SelectOption[],
  required: false,
  default: () => []
}