elementui树状菜单tree_element-ui 树组件(tree)展开合并菜单节点完整功能

本文介绍了在使用 Element UI 的树组件(Tree)时,如何处理点击节点和小三角图标记录展开状态的需求。作者发现点击小三角不会触发 `node-click` 事件,并遇到了节点展开状态 `expanded` 的滞后问题。通过监听 `node-expand` 和 `node-collapse` 事件,并使用 `this.$set` 深度赋值更新 `expanded` 属性,解决了这个问题。文章提供了相关的 Vue 模板代码和 JavaScript 方法,并希望读者分享更简洁的解决方案。
摘要由CSDN通过智能技术生成

element-UI的树组件十分强大,但是我这边有一个需求,点击节点本身和左边小三角按钮时都需要记录菜单树的展开节点。

点击左边小三角不能触发node-click事件(如果有朋友知道怎么做,麻烦告知一下,下面的代码就不需要看了/捂脸)

为了使点击小三角也能追踪记录到节点的开合状态,所以启用了node-expand和node-collapse两个事件

这时我遇到一个让我想原地去世的BUG,就是节点的展开闭合状态node.expanded怎么都不对,具体体现为:node打印出来里面的expanded是正常的,但是如果打印node.expanded就不对!!!!我都要怀疑是浏览器BUG了。

这种状态滞留像极了复杂数据类型值修改后再js中能看见正确的值,而template中渲染还是错误的值一样

所以我尝试分开写node-collapse和node-expand,并用this.$set去设置node.expanded值,之后再去调用记录展开节点数组的方法就OK了!!✿✿ヽ(°▽°)ノ✿✿

template:

class="filter-tree" :data="treedata" node-key="id" :default-expanded-keys="treeopenkey" @node-expand="unfoldTreeState" @node-collapse="foldTreeState" @node-click="nodeClick" auto-expand-parent="false" :ind

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值