• ElementUI浅尝辄止37:Select 选择器


    当选项过多时,使用下拉菜单展示并选择内容。

    1.如何使用?基础单选

    v-model的值为当前被选中的el-option的 value 属性值

    1. <script>
    2. export default {
    3. data() {
    4. return {
    5. options: [{
    6. value: '选项1',
    7. label: '黄金糕'
    8. }, {
    9. value: '选项2',
    10. label: '双皮奶'
    11. }, {
    12. value: '选项3',
    13. label: '蚵仔煎'
    14. }, {
    15. value: '选项4',
    16. label: '龙须面'
    17. }, {
    18. value: '选项5',
    19. label: '北京烤鸭'
    20. }],
    21. value: ''
    22. }
    23. }
    24. }
    25. script>

    2.禁用选项

    el-option中,设定disabled值为 true,即可禁用该选项

    1. <script>
    2. export default {
    3. data() {
    4. return {
    5. options: [{
    6. value: '选项1',
    7. label: '黄金糕'
    8. }, {
    9. value: '选项2',
    10. label: '双皮奶',
    11. disabled: true
    12. }, {
    13. value: '选项3',
    14. label: '蚵仔煎'
    15. }, {
    16. value: '选项4',
    17. label: '龙须面'
    18. }, {
    19. value: '选项5',
    20. label: '北京烤鸭'
    21. }],
    22. value: ''
    23. }
    24. }
    25. }
    26. script>

    3.禁用状态

    选择器不可用状态

    el-select设置disabled属性,则整个选择器不可用

    1. <script>
    2. export default {
    3. data() {
    4. return {
    5. options: [{
    6. value: '选项1',
    7. label: '黄金糕'
    8. }, {
    9. value: '选项2',
    10. label: '双皮奶'
    11. }, ],
    12. value: ''
    13. }
    14. }
    15. }
    16. script>

    4.可清空单选

    包含清空按钮,可将选择器清空为初始状态

    el-select设置clearable属性,则可将选择器清空。需要注意的是,clearable属性仅适用于单选。

    1. <script>
    2. export default {
    3. data() {
    4. return {
    5. options: [{
    6. value: '选项1',
    7. label: '黄金糕'
    8. }, {
    9. value: '选项2',
    10. label: '双皮奶'
    11. }, {
    12. value: '选项3',
    13. label: '蚵仔煎'
    14. }, {
    15. value: '选项4',
    16. label: '龙须面'
    17. }, {
    18. value: '选项5',
    19. label: '北京烤鸭'
    20. }],
    21. value: ''
    22. }
    23. }
    24. }
    25. script>

    5.基础多选

    适用性较广的基础多选,用 Tag 展示已选项

    el-select设置multiple属性即可启用多选,此时v-model的值为当前选中值所组成的数组。默认情况下选中值会以 Tag 的形式展现,你也可以设置collapse-tags属性将它们合并为一段文字。

    1. <script>
    2. export default {
    3. data() {
    4. return {
    5. options: [{
    6. value: '选项1',
    7. label: '黄金糕'
    8. }, {
    9. value: '选项2',
    10. label: '双皮奶'
    11. }, {
    12. value: '选项3',
    13. label: '蚵仔煎'
    14. }, {
    15. value: '选项4',
    16. label: '龙须面'
    17. }, {
    18. value: '选项5',
    19. label: '北京烤鸭'
    20. }],
    21. value1: [],
    22. value2: []
    23. }
    24. }
    25. }
    26. script>

    6.自定义模板

    可以自定义备选项

    将自定义的 HTML 模板插入el-option的 slot 中即可。

    1. <script>
    2. export default {
    3. data() {
    4. return {
    5. cities: [{
    6. value: 'Beijing',
    7. label: '北京'
    8. }, {
    9. value: 'Shanghai',
    10. label: '上海'
    11. }, {
    12. value: 'Nanjing',
    13. label: '南京'
    14. }, {
    15. value: 'Chengdu',
    16. label: '成都'
    17. }, {
    18. value: 'Shenzhen',
    19. label: '深圳'
    20. }, {
    21. value: 'Guangzhou',
    22. label: '广州'
    23. }],
    24. value: ''
    25. }
    26. }
    27. }
    28. script>

    7.分组

    备选项进行分组展示

    使用el-option-group对备选项进行分组,它的label属性为分组名

    1. <script>
    2. export default {
    3. data() {
    4. return {
    5. options: [{
    6. label: '热门城市',
    7. options: [{
    8. value: 'Shanghai',
    9. label: '上海'
    10. }, {
    11. value: 'Beijing',
    12. label: '北京'
    13. }]
    14. }, {
    15. label: '城市名',
    16. options: [{
    17. value: 'Chengdu',
    18. label: '成都'
    19. }, {
    20. value: 'Shenzhen',
    21. label: '深圳'
    22. }, {
    23. value: 'Guangzhou',
    24. label: '广州'
    25. }, {
    26. value: 'Dalian',
    27. label: '大连'
    28. }]
    29. }],
    30. value: ''
    31. }
    32. }
    33. }
    34. script>

    8.可搜索

    可以利用搜索功能快速查找选项

    el-select添加filterable属性即可启用搜索功能。默认情况下,Select 会找出所有label属性包含输入值的选项。如果希望使用其他的搜索逻辑,可以通过传入一个filter-method来实现。filter-method为一个Function,它会在输入值发生变化时调用,参数为当前输入值。

    1. <script>
    2. export default {
    3. data() {
    4. return {
    5. options: [{
    6. value: '选项1',
    7. label: '黄金糕'
    8. }, {
    9. value: '选项2',
    10. label: '双皮奶'
    11. }, {
    12. value: '选项3',
    13. label: '蚵仔煎'
    14. }, {
    15. value: '选项4',
    16. label: '龙须面'
    17. }, {
    18. value: '选项5',
    19. label: '北京烤鸭'
    20. }],
    21. value: ''
    22. }
    23. }
    24. }
    25. script>

    9.远程搜索

    从服务器搜索数据,输入关键字进行查找

    为了启用远程搜索,需要将filterableremote设置为true,同时传入一个remote-methodremote-method为一个Function,它会在输入值发生变化时调用,参数为当前输入值。需要注意的是,如果el-option是通过v-for指令渲染出来的,此时需要为el-option添加key属性,且其值需具有唯一性,比如此例中的item.value

    1. <script>
    2. export default {
    3. data() {
    4. return {
    5. options: [],
    6. value: [],
    7. list: [],
    8. loading: false,
    9. states: ["Alabama", "Alaska", "Arizona",
    10. "Arkansas", "California", "Colorado",
    11. "Connecticut", "Delaware", "Florida",
    12. "Georgia", ]
    13. }
    14. },
    15. mounted() {
    16. this.list = this.states.map(item => {
    17. return { value: `value:${item}`, label: `label:${item}` };
    18. });
    19. },
    20. methods: {
    21. remoteMethod(query) {
    22. if (query !== '') {
    23. this.loading = true;
    24. setTimeout(() => {
    25. this.loading = false;
    26. this.options = this.list.filter(item => {
    27. return item.label.toLowerCase()
    28. .indexOf(query.toLowerCase()) > -1;
    29. });
    30. }, 200);
    31. } else {
    32. this.options = [];
    33. }
    34. }
    35. }
    36. }
    37. script>

    10.创建条目

    可以创建并选中选项中不存在的条目

    使用allow-create属性即可通过在输入框中输入文字来创建新的条目。注意此时filterable必须为真。本例还使用了default-first-option属性,在该属性打开的情况下,按下回车就可以选中当前选项列表中的第一个选项,无需使用鼠标或键盘方向键进行定位。

    1. <script>
    2. export default {
    3. data() {
    4. return {
    5. options: [{
    6. value: 'HTML',
    7. label: 'HTML'
    8. }, {
    9. value: 'CSS',
    10. label: 'CSS'
    11. }, {
    12. value: 'JavaScript',
    13. label: 'JavaScript'
    14. }],
    15. value: []
    16. }
    17. }
    18. }
    19. script>

    如果 Select 的绑定值为对象类型,请务必指定 value-key 作为它的唯一性标识。

     

  • 相关阅读:
    uniapp前端手机获取安全区域css值 防止按键不能被点击
    Apache Doris 快速入门
    2022年面试天花板,Java岗史上最全八股文面试真题汇总
    集美大学第九届程序设计竞赛 L.序列 逆序对
    ES升级--04--SpringBoot整合Elasticsearch
    目标检测算法改进系列之Backbone替换为NextViT
    spark向hadoop写入文件后,查路径为目录,无法查值
    Vue3计算属性
    从零开始:PostgreSQL入门完全指南
    【算能】stream在docker的环境下编译报错
  • 原文地址:https://blog.csdn.net/W2457307263/article/details/132764991