层级选择不再手写联动:TinyVue Cascader 级联选择器上手 在表单中,经常需要选择层级路径,例如收货地址、组织架构、商品类目等。传统做法是串联多个 Select 组件,一级变化后清空二级,二级变化后请求三级,状态同步和禁用时机容易分散,导致交互出现漏洞。 TinyVue 的 Cascad
在表单中,经常需要选择层级路径,例如收货地址、组织架构、商品类目等。传统做法是串联多个 Select 组件,一级变化后清空二级,二级变化后请求三级,状态同步和禁用时机容易分散,导致交互出现漏洞。

长期稳定更新的攒劲资源: >>>点此立即查看<<<
TinyVue 的 Cascader 级联选择器通过一份树形 options 将整条路径整合到一个控件中。展开后按列点选,支持多选、搜索、懒加载,以及选择任意一级节点。
通过 options 指定选项树,用 v-model 绑定选中值:
复制代码
默认情况下,返回的是由各级 value 组成的完整路径数组。如果业务只关心叶子节点的值,可以添加 :props="{ emitPath: false }" 调整返回形态。
展开后按层级点选,一条路径就选完了:
当需要一次勾选多条路径时,开启 props.multiple:
复制代码
多选后输入框会以 Tag 展示已选项;路径多了就加上 collapse-tags,把多余 Tag 折叠起来,避免筛选区被撑爆。需要清空时,clearable 一键搞定。
将 filterable 设为 true 即可启用搜索。默认匹配节点 label 以及父节点 label(受 show-all-levels 影响)。使用 #empty 自定义无匹配时的提示,使用 debounce 控制输入去抖:
复制代码
暂无匹配选项
当类目树层次较深时,滚动查找叶子节点较为繁琐;搜索功能适合知道关键词、不想逐层展开的操作场景。
对于全量地区树或巨大组织树,不适合首屏一次性加载所有 options。此时开启 props.lazy,并使用 lazyLoad 在展开某一级时按需获取子节点。lazyLoad(node, resolve) 必须在数据就绪后调用 resolve:
复制代码
可以使用节点上的 leaf 字段明确标识叶子节点,避免仅根据 children 字段误判展开状态。
默认单选通常只能选择叶子节点。如果业务允许只选择到省级或市级(不必落到区),可以打开 props.checkStrictly,取消父子选中关联:
复制代码
该特性适用于粒度可选的筛选场景,例如有的用户需要精确到区,有的只需要省级汇总。
对于层级路径表单,建议优先使用一份树数据配合 Cascader,而不是串联多个 Select 手写联动。接入顺序建议为:先使用静态 options 跑通,需要多选时开启 multiple 和 collapse-tags,选项多时添加 filterable,数据量大时改用 lazy,允许非叶子节点时开启 checkStrictly。
官方文档:Cascader 级联选择器
侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述