Skip to content

el-select性能问题

vue
<template>
    <div id="app">
        <el-select v-model="value" placeholder="请选择">
            <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"> </el-option>
        </el-select>
        <el-input v-model="input"></el-input>
    </div>
</template>

<script>
export default {
    components: {},
    data() {
        return {
            value: '',
            input: '',
            options: [],
        };
    },
    created() {
        this.genOptions();
    },
    methods: {
        genOptions() {
            const result = [];
            for (let i = 0; i < 3000; i++) {
                result.push({
                    value: `${i}`,
                    label: `${i}`,
                });
            }
            this.options = Object.freeze(result);
        },
    },
};
</script>

el-select会影响页面上input输入框的输入

解决方案

目前使用的是显示下拉框的时候再给options赋值,其它时候,让它是个空数组。

也可以使用虚拟列表解决,但是我们项目暂时没使用这个组件,我们项目已经非常臃肿了,不想引入新的组件。