【antd + vue】Tree 树形控件:默认展开所有树节点 、点击文字可以“选中/取消选中”节点

一、defaultExpandAll 默认展开所有树节点

1、需求:默认展开所有树节点

2、问题:

v-if="data.length"判断的层级不够,只判断到了物理那一层,所以只展开到那一层。

3、原因分析:

默认展开所有树节点, 如果是异步数据,需要在数据返回后再实例化,建议用 v-if="data.length";当有 expandedKeys 时,defaultExpandAll 将失效。

4、解决办法:

判断:到最里面的那一层数据都有了之后再渲染。

二、点击文字可以"选中/取消选中"节点

1、需求:点击文字选中/取消选中节点

2、解决办法:

javascript 复制代码
<a-tree
    checkable
    v-model="checkedKeys":tree-data="treeData"
    @select="treeNodeSelect">
</a-tree>

/**
* @description: 点击文字也能选中
* @return {*}
*/
const treeNodeSelect= (selectedKeys, e) => {
    // 转成真正的数组
    const toArray = (list) => Array.from(list || []);
    // 获取被点击的树节点
    const node = e.nativeEvent.path.find((item) => {
      return toArray(item.classList).findIndex(className => className === "ant-tree-treenode-switcher-open") !== -1;
    });
    // 获取checkbox复选框
    const checkbox = toArray(node.childNodes).find((item) => {
      return toArray(item.classList).findIndex(className => className === "ant-tree-checkbox") !== -1;
    })
    // 模拟点击
    checkbox && checkbox.click();
};

3、参考链接:

ant-design-vue tree组件选中节点也可以勾选上checkbox

相关推荐
阿正的梦工坊1 小时前
JavaScript 微任务与宏任务完全指南
开发语言·javascript·ecmascript
懂懂tty1 小时前
CRA 迁移 Rspack(实战)
前端·架构
小码哥_常2 小时前
Kotlin 助力 Android 启动“大提速”
前端
GreenTea2 小时前
AI 时代,工程师的不可替代性在哪里
前端·人工智能·后端
Jagger_3 小时前
能不能别再弄低代码害人了
前端
朦胧之3 小时前
AI 编程开发思维
前端·后端·ai编程
踩着两条虫3 小时前
VTJ:快速开始
前端·低代码·架构
木斯佳4 小时前
前端八股文面经大全:携程前端一面(2026-04-17)·面经深度解析
前端·状态模式
2301_799073024 小时前
基于 Next.js + 火山引擎 AI 的电商素材智能生成工具实战——字节跳动前端训练营成果
javascript·人工智能·火山引擎
Java后端的Ai之路4 小时前
LangChain ReAct Agent 核心技术问答
前端·react.js·langchain