el-tree 全部展开和全部收起的功能

先直接说实现方法

<el-tree
 ref="folderTreeRef"
 :data="treeData"
 :props="defaultProps"
 node-key="id"
>
</el-tree>
const nodes = this.$refs.folderTreeRef.store._getAllNodes();
nodes.forEach(item=>{
 item.expanded = false
})

展开就把expanded赋值为true就可以。这就是实现方法


下面解释一下以及需要注意的点:

这个方法在官网文档中没有,但是我们可以在调试的时候看到在store的原型上有这个方法

 

而使用此方法前必须设置 node-key 属性。

原因看下面

在注册节点的时候,当key为空时,会直接return出去。这个key就是我们设置的node-key的值,

如果没有设置 node-key,这会导致 nodesMap 没有值,而我们的 _getAllNodes 方法就是通过遍历nodesMap来实现的,所以必须设置node-key。