element中el-autocomplete的常见用法示例

当使用 Vue.js 和 Element UI 搭建网站时,使用 el-autocomplete 组件可以实现一个自动完成的输入框。以下是 el-autocomplete 的常见用法示例:

基本用法

使用 v-model 在父组件中绑定输入框的值,使用 fetchSuggestions 方法获取自动完成的选项列表:

<template>
  <el-autocomplete
    v-model="inputValue"
    :fetch-suggestions="fetchSuggestions"
    placeholder="请输入内容">
  </el-autocomplete>
</template>

<script>
export default {
  data() {
    return {
      inputValue: ''
    }
  },

  methods: {
    fetchSuggestions(queryString, cb) {
      var options = [
        {value: '选项1', id: '1'},
        {value: '选项2', id: '2'},
        {value: '选项3', id: '3'}
      ];
      var results = queryString ? options.filter(this.createFilter(queryString)) : options;
      cb(results);
    },

    createFilter(queryString) {
      return option => {
        return option.value.toLowerCase().indexOf(queryString.toLowerCase()) !== -1;
      };
    }
  }
}
</script>

在上面示例代码中,定义了一个 fetchSuggestions 方法用来获取自动完成选项列表。这个方法接收两个参数:queryString 表示用户输入的值,cb 表示自动完成选项列表。

fetchSuggestions 方法中创建了一个选项数组 options,并通过 createFilter 方法过滤出符合用户输入的选项。最后将过滤出的选项作为 cb 的参数传递给 el-autocomplete 组件。

自定义输入提示

使用 slot 可以自定义输入提示:

<template>
  <el-autocomplete
    v-model="inputValue"
    :fetch-suggestions="fetchSuggestions"
    placeholder="请输入内容">
    <template slot="suggestion" slot-scope="{ item }">
      <div class="custom-item">
        {{ item.value }} (id: {{ item.id }})
      </div>
    </template>
  </el-autocomplete>
</template>

<script>
export default {
  data() {
    return {
      inputValue: ''
    }
  },

  methods: {
    fetchSuggestions(queryString, cb) {
      var options = [
        {value: '选项1', id: '1'},
        {value: '选项2', id: '2'},
        {value: '选项3', id: '3'}
      ];
      var results = queryString ? options.filter(this.createFilter(queryString)) : options;
      cb(results);
    },

    createFilter(queryString) {
      return option => {
        return option.value.toLowerCase().indexOf(queryString.toLowerCase()) !== -1;
      };
    }
  }
}
</script>

在上面示例代码中,使用 slot 自定义了 el-autocomplete 组件中选项的显示内容,显示了选项的 valueid 值。

以上就是 el-autocomplete 组件的常见用法示例。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:element中el-autocomplete的常见用法示例 - Python技术站

(1)
上一篇 2023年5月28日
下一篇 2023年5月28日

相关文章

  • vue下载excel文件的四种方法实例

    下面是“vue下载excel文件的四种方法实例”的完整攻略: 1. 基于前端导出Excel库的实现 使用前端导出Excel库(如FileSaver.js),将数据导出为.xlsx或.csv格式的文件,使其能够被浏览器下载。 import { saveAs } from ‘file-saver’; //导入FileSaver.js库 export functi…

    Vue 2023年5月28日
    00
  • vue.js语法及常用指令

    下面是关于“vue.js语法及常用指令”的完整攻略。 一、Vue.js语法 Vue.js 是一款流行的 JavaScript 框架,它的语法和模板采用了基于 HTML 的模板语法,简化了前端开发中数据绑定和 DOM 操作的复杂度。下面是 Vue.js 的一些基本语法: 1. 基本模板 Vue.js 的基本模板由普通的 HTML 标签和 Vue.js 的特殊属…

    Vue 2023年5月27日
    00
  • Vue如何获取数据列表展示

    当我们使用Vue进行开发时,数据展示是不可避免的需要。这里提供一份完整的攻略,来讲解Vue如何获取数据列表展示。 一、数据获取 获取数据是数据展示的前置步骤。Vue中通常使用计算属性(computed)或者组件的created生命周期函数来获取数据。 1. 计算属性 计算属性是用来计算衍生数据的属性,它通常依赖于已有的数据。当依赖的数据发生变化时,计算属性将…

    Vue 2023年5月28日
    00
  • Vue基于NUXT的SSR详解

    Vue基于NUXT的SSR详解 什么是SSR SSR是指服务器端渲染(Server-side rendering),是将Vue组件在服务器端渲染成HTML字符串,然后再将这个HTML字符串返回给浏览器端,浏览器接收到这个HTML字符串后进行解析,即可渲染出页面来。 相对于SPA(单页应用程序)的客户端渲染(CSR),SSR更加利于SEO,加快页面的渲染速度,…

    Vue 2023年5月28日
    00
  • vue $set 实现给数组集合对象赋值

    当使用 Vue.js 开发中,如果想要给数组或对象添加新属性并确保这些属性是可响应的,可以使用 Vue 的 $set 方法来实现。 Vue.$set() 方法接受三个参数:对象,键,值。它所做的主要工作就是创建新属性,并将其设置为可响应的。 下面是使用Vue.$set()方法来给数组添加新元素的示例: <template> <div>…

    Vue 2023年5月28日
    00
  • element-ui 限制日期选择的方法(datepicker)

    当使用 element-ui 中的 datepicker 组件进行日期选择时,有时候需要对日期进行限制,例如不能选择过去日期等。下面是针对此种情况的 element-ui 限制日期选择的方法: 1. 使用可选日期范围 最基本的限制方法是使用 picker-options 属性,该属性用于组件设置,以限制 datepicker 组件中可选日期的范围,用户无法选…

    Vue 2023年5月29日
    00
  • Vue实现文本编译详情

    下面是关于Vue实现文本编译的完整攻略。 1. 理解Vue模板和编译过程 Vue框架中,模板是组件渲染的基础,它会被编译成可执行的JavaScript函数的形式。编译过程顺序为: 将模板解析成抽象语法树(Abstract Syntax Tree,AST); 对AST进行静态分析,生成可执行的渲染函数(render function); 最终渲染函数会被执行,…

    Vue 2023年5月27日
    00
  • vue3 中的toRef函数和toRefs函数的基本使用

    那我来详细讲解一下“Vue3中的toRef函数和toRefs函数的基本使用”的完整攻略。 什么是toRef函数和toRefs函数 在Vue3中,我们可以使用toRef函数和toRefs函数来创建响应式数据。它们的作用是: toRef: 将一个普通的数据变成一个响应式的引用,当该数据更新时,组件也会相应地重新渲染。 toRefs: 将一个响应式对象中的所有属性…

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部