【项目经验】:项目中下拉框数据太多造成页面卡顿(二)

简介: 项目中下拉框数据太多造成页面卡顿(二)

一.项目需求

下拉框下拉列表数据是由后端返回的,而且他会变化,所以数据不是写死的而且数据量大。上一篇博客link我们是用的数据懒加载的方式,这次我们使用远程搜索的方式解决这个问题。

二.用到的组件方法介绍

Snipaste_2023-08-22_17-17-11.png

三.代码

<template>
    <div class="content">
        <el-select v-model="value" filterable remote placeholder="请输入关键词" :remote-method="remoteMethod" @change="change">
            <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
            </el-option>
        </el-select>


    </div>
</template>

<script>
export default {
    
    
    name: "list",
    data () {
    
    
        return {
    
    
            options: [],
            value: "",
            list: [],
            loading: false,
            states: []
        }
    },


    methods: {
    
    
        init () {
    
    
            for (let i = 0; i < 10000; i++) {
    
    
                let obj = {
    
    
                    value: `"${
      
      i}"`,
                    label: `数据${
      
      i}`
                };
                this.states.push(obj);
            }
            this.options = this.states.slice(0, 50);
            // console.log(this.options);
        },
        remoteMethod (val) {
    
    
            console.log("val", val);
            this.$axios(url, {
    
     val: val }).then(res => {
    
    
                // 后端通过模糊查询返回,也可以前端自己查
                this.options = res
            })
        },
        // 每次选中的下次打开显示到第一个
        change (val) {
    
    
            let index = this.states.findIndex(item => {
    
    
                return item.value == this.value;
            })
            this.states.unshift(this.states.splice(index, 1));
        }


    },
    mounted () {
    
    
        this.init()
    }
}
</script>

<style scoped></style>
相关文章
|
4月前
|
API PHP
如何开发陪玩系统源码的列表页面,相关实现代码
接下来我们一起来看看具体的实现代码吧。route.php<?phpusethink\Route;Route::get('test','api/test/index');Route::put('test/:id','api/test/update');Route::delete('test/:id','api/test/delete');Route::resource('test','api/test');Route::get('api/:ver/cat','api/:ver.cat/read');Route::get('api/:ver/index','api/:ver.index/index
|
前端开发 JavaScript
【项目笔记】:elementui下拉框数据太多造成页面卡顿怎么解决?
针对前端下拉框数据过多造成页面卡顿,元芳你怎么看?
180 2
|
存储 小程序 前端开发
【易售小程序项目】小程序私聊页面完善(带尾巴聊天气泡组件封装、滑至顶端获取历史聊天数据逻辑优化)【后端基于若依管理系统开发】
【易售小程序项目】小程序私聊页面完善(带尾巴聊天气泡组件封装、滑至顶端获取历史聊天数据逻辑优化)【后端基于若依管理系统开发】
61 0
|
Web App开发 前端开发 JavaScript
使用函数节流思想避免 SAP UI5 应用里按钮短时间内被高频重复点击试读版
使用函数节流思想避免 SAP UI5 应用里按钮短时间内被高频重复点击试读版
|
Web App开发 存储 缓存
我是如何优化弹窗拖拽卡顿的?内附排查和优化过程
我是如何优化弹窗拖拽卡顿的?内附排查和优化过程
238 0
|
前端开发
弹性布局案例实操(京东网页对草稿页面进行改进)(二)
弹性布局案例实操(京东网页对草稿页面进行改进)(二)
155 0
弹性布局案例实操(京东网页对草稿页面进行改进)(二)
|
小程序 UED 开发者
小程序开发必备功能的吐血整理【个人中心界面样式大全】
小程序开发必备功能的吐血整理【个人中心界面样式大全】
650 1
小程序开发必备功能的吐血整理【个人中心界面样式大全】
弹性布局案例实操(京东网页对草稿页面进行改进)(一)
弹性布局案例实操(京东网页对草稿页面进行改进)(一)
376 0
|
前端开发
前端工作小结72-实现预览效果
前端工作小结72-实现预览效果
110 0
前端工作小结72-实现预览效果
|
前端开发
前端工作小结91-点击直接进入
前端工作小结91-点击直接进入
78 0
前端工作小结91-点击直接进入