情况:项目出现了下拉数据量过大,出现页面卡死问题,反馈到我这;
当时实现思路1.使用render函数去渲染下拉框 
试了发现卡死情况依然存在,所以尝试方法2

2.使用原生js去添加下拉框的<option>
页面卡死情况没了,但是变成原生select,数据量大 很难找到对应的人 要下拉去找很久;
只能说不完美  没达到我预想。

百度了 发现一篇地址:https://segmentfault.com/a/1190000017812498?utm_source=tag-newest 下拉懒加载的操作,我就借鉴了 
实现代码:

<el-select 
v-model="userId"
:filterable='true'
:default-first-option='true'
v-el-select-loadmore="loadmore"
placeholder="请选择用户">
<el-option
v-for="(item,index) in userItems"
:label="item.name"
:value="item.id"
:key="index"></el-option>
</el-select>
data(){
return {
userItems: [],//下拉数组
      formData: {   //下拉参数
        pageIndex: 1,
        pageSize: 20
      },
users:[]  //总数组
}
}
 
一个指令v-el-select-loadmore:
  directives: {
    'el-select-loadmore': {
      bind(el, binding) {
        const SELECTWRAP_DOM = el.querySelector(
          '.el-select-dropdown .el-select-dropdown__wrap'
        );
        SELECTWRAP_DOM.addEventListener('scroll', function() {
          const condition =
            this.scrollHeight - this.scrollTop <= this.clientHeight;
          if (condition) {
            binding.value();
          }
        });
      }
    }
  },
 
一个方法:loadmore
// 下拉加载
    loadmore() {
      this.formData.pageIndex++;
      this.getUsers(this.formData);
    },
 
 getUsers(v) {
      let num = ~~this.formData.pageIndex * ~~this.formData.pageSize;
      this.userItems = this.users.filter((item, index, arr) => {
        return index < num;
      });
    },
 
如此实现刚进页面显示前20条数据,往下滚动显示更多数据,就实现了懒加载。
还有几个待优化点:1下拉搜索是已加载的数据中找,而不是全部数据。2已选中未加载数据怎么办;
别的不多说 我去优化了。可能有后续,发现自己变懒了 博客变少了。

最新文章

  1. 安卓开发之activity详解(sumzom)
  2. 7 COMPELLING REASONS YOU NEED TO START THE BUSINESS YOU’VE ALWAYS WANTED
  3. 采用HSV生成随机颜色
  4. LDA-math-MCMC 和 Gibbs Sampling
  5. winform学习日志(十九)----------真正三层架构之登录
  6. python手记(46)
  7. Intel VT-X
  8. 人工神经网络,支持任意数量隐藏层,多层隐藏层,python代码分享
  9. .NET技术面试题系列(1) 基础概念
  10. SqlServer之like、charindex、patindex 在有无索引的情况下分析
  11. HTML 动画收藏
  12. 微信小程序:request合法域名检验出错,https://apis.map.qq.com 不在以下 request 合法域名列表中
  13. Python 学习 第八篇:函数2(参数、lamdba和函数属性)
  14. Spyder 调出绘图界面
  15. 【HAOI2012】外星人
  16. 【Selenium-WebDriver问题点】chromeDriver和chrome浏览器版本之间的兼容性问题
  17. 创建自己的共用js库
  18. ActiveMQ延迟消息配置
  19. hadoop之 map个数控制
  20. java如何从一段html代码中获取图片的src路径

热门文章

  1. JDBC介绍和Mybatis运行原理及事务处理
  2. cs231n spring 2017 lecture2 Image Classification
  3. VisionPro连接Dalsa线扫相机
  4. fiddler导出请求返回的响应数据
  5. java的自增和自减
  6. [转载] 自定义标签,jsp调用java类
  7. Pandas提取单元格的值
  8. 测试工程师不懂AI,还有未来吗?
  9. loadrunner通过web的post请求方法测接口 2
  10. python调用adb命令进行手机操作