el-cascader 使用动态加载
时间: 2024-09-20 12:00:36 浏览: 43
`el-cascader` 是 Element UI 中的一个组件,用于创建级联选择器,它支持动态加载数据以提高性能,特别是当数据量庞大或者需要从服务器获取时。在动态加载模式下,当你展开层级时,不会一次性加载所有子节点,而是按需请求。
要实现实时动态加载,你需要:
1. 给每个选项设置一个 `load-data` 或者 `lazy` 属性,设为 `true`,表示该节点是懒加载的。
2. 当用户点击一个懒加载节点时,触发一个自定义事件,比如 `@lazy-load`,传递当前节点的值作为参数。
3. 在这个事件处理函数中,异步从服务器或API获取对应的子节点数据,并将结果更新到组件的 `options` 数据源。
例如:
```javascript
<template>
<el-cascader
v-model="selectedValue"
lazy
@lazy-load="fetchOptions"
placeholder="请选择分类"
></el-cascader>
</template>
<script>
export default {
data() {
return {
selectedValue: '',
options: [], // 初始化的数据可以是空数组
};
},
methods: {
fetchOptions(node) {
const { value } = node;
// 模拟异步数据加载
this.$axios.get(`/api/getChildren?parentId=${value}`)
.then(response => response.data)
.then(children => {
this.options.push(...children); // 更新选项
});
},
},
};
</script>
```
阅读全文