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

Element Plus - Cascader 观察记录(基本使用、动态加载、动态加载下的异常环境)

Cascader 观察记录

1、基本使用
<template> <div> <el-cascader v-model="value" :options="options" @change="handleChange" /> </div> </template> <script lang="ts"> export default { name: "CascaderTest", }; </script> <script lang="ts" setup> const value = ref([]); const options = ref([ { value: "staff", label: "人员信息", children: [ { value: "staff1", label: "张三", }, { value: "staff2", label: "李四", }, ], }, { value: "task", label: "任务信息", children: [ { value: "task1", label: "任务 1", }, { value: "task2", label: "任务 2", }, ], }, ]); const handleChange = (val) => { console.log(val); }; </script> <style scoped lang="sass"></style>
  1. 选择 【人员信息 / 张三】 输出结果如下
Proxy(Array) {0: 'staff', 1: 'staff1'}
  1. 选择 【任务信息 / 任务 1】 输出结果如下
Proxy(Array) {0: 'task', 1: 'task1'}
2、动态加载
<template> <div> <el-cascader :props="props" /> </div> </template> <script lang="ts"> export default { name: "CascaderTest", }; </script> <script lang="ts" setup> const props = { lazy: true, lazyLoad(node, resolve) { const { level } = node; // 第一层,level 为 0 if (level === 0) { console.log("动态加载第一层"); resolve([ { value: "staff", label: "人员信息", leaf: false, }, { value: "task", label: "任务信息", leaf: false, }, ]); } else { console.log("动态加载第二层"); setTimeout(() => { if (node.value === "staff") { console.log("动态加载人员信息"); resolve([ { value: "staff1", label: "人员 1", leaf: true, }, { value: "staff2", label: "人员 2", leaf: true, }, ]); } else if (node.value === "task") { console.log("动态加载任务信息"); resolve([ { value: "task1", label: "任务 1", leaf: true, }, { value: "task2", label: "任务 2", leaf: true, }, ]); } }, 1000); } }, }; const handleChange = (val) => { console.log(val); }; </script> <style scoped lang="sass"></style>
  1. 打开页面,输出结果如下
动态加载第一层
  1. 点击 【人员信息】 输出结果如下
动态加载第二层 动态加载人员信息
  1. 点击 【任务信息】 输出结果如下
动态加载第二层 动态加载任务信息
  1. 再次点击 【人员信息】 输出结果如下
(无,不会再执行动态加载)
3、动态加载(异常环境)
<template> <div> <el-cascader :props="props" /> </div> </template> <script lang="ts"> export default { name: "CascaderTest", }; </script> <script lang="ts" setup> let time = 1; const props = { lazy: true, lazyLoad(node, resolve) { const { level } = node; // 第一层,level 为 0 if (level === 0) { console.log("动态加载第一层"); resolve([ { value: "staff", label: "人员信息", leaf: false, }, { value: "task", label: "任务信息", leaf: false, }, ]); } else { console.log("动态加载第二层"); setTimeout(() => { if (node.value === "staff") { console.log("动态加载人员信息"); if (time < 3) { console.log("模拟发生异常"); time++; resolve([]); } else { resolve([ { value: "staff1", label: "人员 1", leaf: true, }, { value: "staff2", label: "人员 2", leaf: true, }, ]); } } else if (node.value === "task") { console.log("动态加载任务信息"); resolve([ { value: "task1", label: "任务 1", leaf: true, }, { value: "task2", label: "任务 2", leaf: true, }, ]); } }, 1000); } }, }; const handleChange = (val) => { console.log(val); }; </script> <style scoped lang="sass"></style>
  1. 打开页面,输出结果如下
动态加载第一层
  1. 点击 【人员信息】 输出结果如下
动态加载第二层 动态加载人员信息 模拟发生异常
  1. 再次点击 【人员信息】 输出结果如下
(无,不会再执行动态加载)
4、补充
* 在第一层时 1. 使用 resolve(); 时:点击下拉按钮,出现内容块(加载中) 2. 使用 resolve([]); 时:点击下拉按钮,出现内容块(暂无数据)
* 在第二层时 1. 使用 resolve(); 时:第一次点击 【一级选项】 时,不会出现新的侧边内容块;第二次点击 【一级选项】 时,才会出现新的侧边内容块(暂无数据) 2. 使用 resolve([]); 时:第一次点击 【一级选项】 时,就会出现新的侧边内容块(赞数数据) ```
http://www.jsqmd.com/news/484709/

相关文章:

  • 【大模型|本地部署】Qwen3.5:0.8B边缘本地部署电脑和手机
  • FLUX.1-dev实战分享:如何利用开源模型生成细节丰富的创意视觉内容
  • 文献 环境因子是否会影响eDNA检测?
  • MiniCPM-o-4.5-nvidia-FlagOS生成LaTeX文档效果:从草稿到排版一气呵成
  • Quartus Prime Lite Edition 25.1 安装备忘
  • Qwen3-0.6B-FP8部署至Ubuntu服务器详解:从系统配置到服务上线
  • Qwen Pixel Art效果对比:与PixelDiffusion、Pix2Struct在细节还原度上的实测
  • 真实世界研究R代码总被药监局退回?这8个ADaM变量命名雷区,92%的临床数据科学家已中招
  • URBAN中如何设置阀门RTC调度
  • 鸿蒙常见问题分析五十:自定义Video组件的控制栏功能
  • 鸿蒙常见问题分析五十四:应用侧从H5侧接收参数报错问题
  • PHP 开发中 XSS 跨站脚本攻击问题详解及解决方案
  • Fish-Speech-1.5与SpringBoot集成:企业级TTS服务构建
  • docker入门基础命令
  • OpenClaw 的安全方案
  • DTD元素解析:XML结构基础
  • DeepAnalyze模型评测:8B参数版本的性能全面测试
  • 本科论文救星!Paperzz AI 写作:从选题到成文,4 步搞定 12000 字原创论文
  • 文墨共鸣作品集:100组中文常见转述句对的StructBERT语义相似度实测
  • Spring Boot 3.x开发中DSL配置与旧版配置API不兼容问题详解及解决方案
  • XSD简易元素入门指南
  • 7电平级联H桥逆变器:从仿真到现实的探索之旅
  • 【Ocean modeling + book(一个章节)】海洋模型与业务化海洋学发展综述
  • Ionic切换开关全攻略
  • 第十五届蓝桥杯c++B组:好数
  • 鸡眼扣自动摆盘实战指南:半自动化整列机为何成为行业首选?
  • 网络层IP理解
  • 基于MPC模型预测控制的“风储调频”系统:仿真与实际频率特性的对比研究
  • java--多线程--线程安全
  • 在openSUSE-Leap-15.6-DVD-x86_64中使用gnome-builder-45.0的基本功能(二)空白Makefile工程