el-autocomplete的使用技巧(ElementUI)

不让el-autocomplete触发fetch-suggestions事件

如果不想让el-autocomplete组件触发fetch-suggestions事件,可以通过设置trigger-on-focus属性来实现。
trigger-on-focus属性是el-autocomplete组件的一个参数,它控制着当input获得焦点时是否自动触发数据查询。将trigger-on-focus属性设置为false后,el-autocomplete就不会在输入框获得焦点时自动触发fetch-suggestions事件了。

<el-autocomplete
  v-model="value"
  :fetch-suggestions="querySearchAsync"
  :trigger-on-focus="false">
  <template slot-scope="{ item }">{{ item.value }}</template>
</el-autocomplete>

 取消搜索功能,点击输入框展示全部数据

调接口时把word:queryString去掉,就不会触发搜索关键词的功能,前提是后端接口有搜索字段!

// 有搜索关键词功能  
querySearchList(queryString, cb, type) {
    if (type == "shop") {
      getShopList({word:queryString, page: 1, limit: 999, isShowBlock: 0 }).then((res) => {
        cb(res.list);
      });
    }
  }
  
// 没有搜索关键词功能
querySearchList(queryString, cb, type) {
    if (type == "shop") {
      getShopList({ page: 1, limit: 999, isShowBlock: 0 }).then((res) => {
        cb(res.list);
      });
    }
  }

 下拉框每次点击都会抖动一下才会展示数据

加属性 debounce(获取输入建议的去抖延时)。debounce 的默认值是 300ms,将其设置为 0ms。

 <el-autocomplete
          placeholder="请输入DEVEUI"
          v-model="searchDeveuiVal"
          clearable
          :fetch-suggestions="querySearch"
          size="small"
          :debounce=0
          @keyup.enter.native="searchAppNode">
 </el-autocomplete>

参考:element-ui带输入建议的input框踩坑(输入建议空白以及会闪出上一次的输入建议问题)_element input光标闪烁-CSDN博客

 

`el-autocomplete` 是 Element UI 提供的一个用于输入框自动补全功能的组件。它基于 Vue.js 开发,常用于搜索、建议等功能场景。以下是使用 `el-autocomplete` 的基本步骤: 1. 引入组件:首先需要在你的 Vue 项目中安装 Element UI,并引入 `el-autocomplete` 组件。例如,在 `main.js` 或其他入口文件里添加: ```js import { ElAutocomplete } from 'element-ui' Vue.component('el-autocomplete', ElAutocomplete) ``` 2. 注册并绑定到模板:然后在你的 Vue 实例模板中,创建一个 `<el-autocomplete>` 元素,并指定一些属性: ```html <template> <div> <el-autocomplete v-model="inputValue" placeholder="请输入关键词" :remote-method="search" <!-- 远程搜索方法 --> @select="handleSelect" <!-- 当用户选择一项时触发的事件 --> :trigger-on-focus="false" <!-- 控制是否在焦点获取时立即触发搜索 --> ></el-autocomplete> </div> </template> ``` 关键属性: - `v-model`: 表单的值,通常绑定用户的输入。 - `remote-method`: 自定义的远程搜索函数,一般会发送 AJAX 请求获取数据。 - `@select`: 选择事件处理器,可以处理选中的项。 3. 定义数据和方法:在你的 Vue 实例中,定义 `inputValue` 和相关的数据管理以及搜索方法: ```js export default { data() { return { inputValue: '', // 根据实际需求填充远程搜索的数据源 searchList: [], }; }, methods: { search(query) { // 使用输入值查询数据源 this.$axios.get('/api/search', { params: { keyword: query } }) .then(response => (this.searchList = response.data)) .catch(error => console.error(error)); }, handleSelect(item) { // 处理选中的 item console.log('Selected:', item); }, }, }; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值