【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

相关推荐
摸着石头过河的石头15 小时前
Service Worker 深度解析:让你的 Web 应用离线也能飞
前端·javascript·性能优化
用户40993225021215 小时前
Vue 3中watch侦听器的正确使用姿势你掌握了吗?深度监听、与watchEffect的差异及常见报错解析
前端·ai编程·trae
1024小神15 小时前
Xcode 常用使用技巧说明,总有一个帮助你
前端
molly cheung15 小时前
Vue3:watch与watchEffect的异同
vue.js·watch·store·watcheffect
政采云技术16 小时前
音视频通用组件设计探索和应用
前端·音视频开发
不爱吃糖的程序媛16 小时前
Electron 如何判断运行平台是鸿蒙系统(OpenHarmony)
javascript·electron·harmonyos
Hilaku16 小时前
我用AI重构了一段500行的屎山代码,这是我的Prompt和思考过程
前端·javascript·架构
Cxiaomu16 小时前
React Native App 自动检测版本更新完整实现指南
javascript·react native·react.js
IT_陈寒17 小时前
Vite性能优化实战:5个被低估的配置让你的开发效率提升50%
前端·人工智能·后端
IT_陈寒17 小时前
Java性能调优的7个被低估的技巧:从代码到JVM全链路优化
前端·人工智能·后端