elementui的el-cascader的懒加载详细的代码
时间: 2024-03-02 11:53:29 浏览: 56
懒加载代码案例
好的,以下是基于 ElementUI 的 el-cascader 组件实现懒加载的代码:
```
<template>
<el-cascader
v-model="selectedOptions"
:options="options"
:props="{ lazy: true, lazyLoad: loadOptions }"
@change="handleChange"
></el-cascader>
</template>
<script>
export default {
data() {
return {
options: [],
selectedOptions: []
}
},
mounted() {
// 加载第一级选项
this.loadOptions(null, (data) => {
this.options = data
})
},
methods: {
loadOptions(id, callback) {
// 模拟异步加载数据
setTimeout(() => {
const data = [
// 根据 id 加载下一级选项
{ value: '1', label: '选项 1', isLeaf: false },
{ value: '2', label: '选项 2', isLeaf: false },
{ value: '3', label: '选项 3', isLeaf: false }
]
callback(data)
}, 500)
},
handleChange(value, selectedOptions) {
console.log(value, selectedOptions)
}
}
}
</script>
```
在这个示例中,我们通过设置 `lazy: true` 和 `lazyLoad: loadOptions` 来启用懒加载。`loadOptions` 方法负责根据传入的 id 加载下一级选项,并在加载完成后调用传入的回调函数。在 `mounted` 钩子中,我们调用 `loadOptions` 方法加载第一级选项,将其存储到 `options` 变量中,以供 `el-cascader` 组件使用。当用户选择某个选项时,`el-cascader` 组件会根据选项的 `isLeaf` 属性决定是否继续加载下一级选项,从而实现懒加载的效果。
阅读全文