千家信息网

vue如何对el-autocomplete二次封装增加下拉分页

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章主要介绍vue如何对el-autocomplete二次封装增加下拉分页,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!项目中的联想输入框现在都是采用的el-autocom
千家信息网最后更新 2026年11月02日vue如何对el-autocomplete二次封装增加下拉分页

这篇文章主要介绍vue如何对el-autocomplete二次封装增加下拉分页,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

项目中的联想输入框现在都是采用的el-autocomplete实现的,但是随着数据量越来越多,产品要求一次不要返回所有的联想数据,要做分页处理,所以需要添加一个分页的功能。

注:看懂下面的代码需要先对vue和element有一定的学习。

完整代码

下面对主要的地方进行讲解。

1.自定义指令实现下拉加载更多。

主要代码

// 自定义指令,监听下拉框的滚动,滚动到底部就加载下一页    scrollLoad: {      bind(el, binding, vnode) {        let wrapDom = el.querySelector('.el-autocomplete-suggestion__wrap')        let listDom = el.querySelector('.el-autocomplete-suggestion__wrap  .el-autocomplete-suggestion__list')        wrapDom.addEventListener(          'scroll',          e => {            // 注意load的使用,节流            let condition = wrapDom.offsetHeight + wrapDom.scrollTop + 10 - listDom.offsetHeight            if (condition > 0 && !vnode.context.loading) {              //滚动到底部则执行滚动方法load,binding.value就是v-scrollLoad绑定的值,加()表示执行绑定的方法              binding.value()            }          },          false        )      }

上面主要是运用了vue的自定义指令的bind钩子。不太了解的可以先看这个https://cn.vuejs.org/v2/guide/custom-directive.html 。bind有四个参数(el、binding、vnode、oldVnode)这里用前三个,el代表绑定的元素,用来操作dom,这里用来添加scroll事件,以及计算下拉框是否滑动到底部(注意计算中的+10高度);binding是一个对象,包含旧值、新值、指令名等,这里主要用绑定值value,用来执行加载更多的方法;Vnode指的是虚拟节点,这里取他的context即为this控制loading来节流。

2.增加props(getOptionFn、searchKey、value、placeholder)抽离业务。成为公共组件

  • getOptionFn为接口封装的方法。fetch-suggestions和加载更多里面都要用到

  • searchKey表示接口需要传的参数的key,不同的接口的key可能不一致。

  • value是外面v-modle的绑定值,注意在watch里面设置值,不知道的可以看看v-model的实现原理。

  • placeholder不解释

3.可能需要解释的

  • 在加载到更多数据后怎么把输入加到下拉里面?

this.$refs['autocomplete'].$data.suggestions // 下拉的列表
  • 怎么避免加载完了还加载更多。

这里是用的数量比较,也可以加一个标识符,加载完了设置为true,变化条件后设为false。

if(Number(this.pageTotal) <= this.$refs['autocomplete'].$data.suggestions.length) {    return  }

以上是"vue如何对el-autocomplete二次封装增加下拉分页"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

下拉 方法 更多 数据 指令 封装 代码 接口 输入 内容 参数 完了 就是 篇文章 面的 监听 解释 不同 一致 三个 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海喔噻互联网科技有限公司 深圳九邦互联网科技有限公司 工业互联网科技新基建 互联网最新的科技有限公司 奇酷互联网络科技 百单互联网科技有限公司 无锡溥仪互联网科技有限公司 云创客互联网科技公司 深圳前海聚择互联网科技有限公司 贵州叶脉互联网科技有限公司所属行业 互联网科技有哪些公司 搜狐科技互联网 想开互联网科技公司怎么样 烟台灵鸽互联网科技有限公司 广州千川互联网科技有限公司 厦门江牛科技互联网 35岁以上互联网科技行业 唯美互联网科技 互联网科技大会大佬 山东亿川互联网科技有限责任公司 伟宏互联网科技 广州大一互联网络科技有限公司 美国互联网保险保险科技 互联网科技公司怎么样 九亚互联网科技 亿账通互联网科技 金融科技和互联网金融 国大互联网教育科技有限公司工作 三亚科技创新互联网基地 陕西彩京云互联网科技有限公司
0