当前位置: 首页 > news >正文

深圳坪山高铁站新型网络搜索引擎

深圳坪山高铁站,新型网络搜索引擎,网站开发公司营业范围,wordpress customize.phpel-select: element-ui组件中的select下拉选择组件,支持单选、多选等 虚拟列表: 虚拟列表是一种优化技术,用于处理大型列表。在传统的列表中,当用户滚动到底部时,列表会加载所有的数据,这可能导…
el-select:

        element-ui组件中的select下拉选择组件,支持单选、多选等

虚拟列表:

        虚拟列表是一种优化技术,用于处理大型列表。在传统的列表中,当用户滚动到底部时,列表会加载所有的数据,这可能导致性能问题和内存泄漏。虚拟列表通过只加载当前可见的部分数据,而不是整个列表的数据来解决这个问题。当用户滚动到新的区域时,虚拟列表会自动加载新的数据,从而提高性能和响应速度。这种技术通常与虚拟滚动结合使用,可以在保持高性能和流畅性的同时,支持大量的数据呈现。

背景:

        在做管理系统,下拉选择框是个必备功能,在实际开发中,下拉数据量是不可控的,el-select虽然有过滤筛选等功能,但是如果数据过大的时候,会导致浏览器卡死,在切换页面时,销毁这个也很耗时,导致页面切换体验性很差,所以需要处理这种情况!

最简单处理方案:

        默认下拉是空,只支持过滤筛选,实现:filterMethod,可以手动控制展示的数据量

最终处理方案:

        用虚拟列表策略处理,重新封装el-select组件

<template><el-selectv-model="selected":filter-method="filterMethod":value-key="props.key ? props.key : props.value"@focus="selectMethod"filterableclearabledefault-first-optionv-bind="$attrs"v-on="$listeners"ref="customSelect"><template slot="prefix"><slot name="prefix"></slot></template><el-option v-for="item in selectList" :key="item[props.key ? props.key : props.value]" :value="item[props.value]" :label="item[props.label]"></el-option></el-select>
</template><script>
import { throttle } from '@/utils/debounce';
export default {props: {value: [String, Number, Array],props: {type: Object,default: () => {return {value: 'id',label: 'name',};},},data: {type: Array,default: () => [],},},computed: {selected: {get() {return this.value;},set(val) {this.$emit('input', val);},},},data() {return {scrollDom: null,selectList: [],filterList: [],page: 1,size: 20,};},watch: {data: {immediate: true,handler(val) {val.length && this.initSelect();},},},mounted() {this.scrollDom = this.$refs.customSelect.$refs.scrollbar.$refs.wrap;this.scrollDom.addEventListener('scroll', throttle(this.handlerScroll, 200));},beforeDestroy() {this.scrollDom.removeEventListener('scroll', throttle(this.handlerScroll, 200));},methods: {handlerScroll() {// TODO:监听滚动,触发加载if (this.scrollDom.scrollHeight - this.scrollDom.scrollTop - 1 <= this.scrollDom.clientHeight) {this.loadData();}},firstLoad() {// 初始化数据this.page = 1;const len = this.filterList.length;if (len <= this.size) {this.selectList = this.filterList;} else {this.selectList = this.filterList.slice(0, this.size);}},selectMethod() {let param = this.selected;if (Object.prototype.toString.call(this.selected) === '[object Array]') {param = this.selected.join('');}if (param) {// TODO:有值不需要重置查询, 但当组件初始化的时候selected有值回显有问题} else {this.filterMethod('');}},filterMethod(str) {this.filterList = this.data.filter(item => {return item[this.props.label] && item[this.props.label].indexOf(str) > -1;});this.firstLoad();},initSelect() {let param = this.selected;if (Object.prototype.toString.call(this.selected) === '[object Array]') {param = this.selected.join('');}if (param) {// 筛选this.filterList = this.data.filter(item => {return param.indexOf(item[this.props.value]) > -1;});this.selectList = this.filterList;}},loadData() {if (this.filterList.length <= this.page * this.size) {// 最后一页return;}++this.page;const len = this.page * this.size;if (this.filterList.length <= len) {this.selectList = this.filterList;} else {this.selectList = this.filterList.slice(0, len);}},},
};
</script>
http://www.hkea.cn/news/478180/

相关文章:

  • 视频网站制作广告代理公司
  • wordpress主题域名授权密钥生成镇海seo关键词优化费用
  • 北京东直门+网站建设汕头seo外包平台
  • 长沙 做网站企业网络组网设计
  • 北京哪家做网站优化产品seo基础优化
  • 招商加盟网站建设百度网址安全检测
  • 知名做网站费用2024年将爆发新瘟疫
  • 河北省城乡与建设厅网站企业关键词排名优化哪家好
  • 网站开发合同协议百度百科推广费用
  • 推荐黄的网站产品推广策划
  • 济南网站建设设计公司线上运营推广
  • 小清新 wordpressseo排名是什么意思
  • 从客户—管理者为某一公司做一份电子商务网站管理与维护的方案自媒体是如何赚钱的
  • 黑龙江住房和城乡建设厅网站首页每日精选12条新闻
  • 做网站工作都包括什么企业网站搭建
  • 自己可以进行网站建设吗河北网站推广
  • 网站建设与管理论文seo整站怎么优化
  • 西安做网站收费价格网站流量监控
  • 福州网站制作有限公司南京疫情最新情况
  • 国外品牌设计网站天津疫情最新消息
  • 宁波有做网站的地方吗seo报价单
  • 深圳企业网站开发中国法律服务网app最新下载
  • 大连企业网站建站国外域名注册网站
  • 站长工具seo综合查询权重百度在线搜索
  • 伊犁网站建设评价怎样才能上百度
  • 房地产网站建设方案百度实名认证
  • 做外贸可以在哪些网站注册网络项目免费的资源网
  • 中国建设银行信用卡网站首页青岛关键词优化平台
  • 阿里云网站建设考试题目长沙网站推广服务公司
  • 甘肃建设项目审批权限网站俄罗斯搜索引擎yandex官网入口