vue el-tree新增节点后不折叠刷新
在Vue中使用Element UI的el-tree
组件时,如果你在新增节点后不想折叠树结构,可以通过不调用el-tree
的updateKeyChildren
方法来避免重新渲染。
以下是一个简化的例子,展示了如何在新增节点后不折叠树结构:
<template>
<el-tree
:data="treeData"
:props="defaultProps"
ref="tree"
></el-tree>
</template>
<script>
export default {
data() {
return {
treeData: [...], // 初始化树结构数据
defaultProps: {
children: 'children',
label: 'label'
}
};
},
methods: {
addNode(parentNode, newNode) {
// 假设parentNode是要添加子节点的父节点对象
// 假设newNode是新添加的节点对象
if (parentNode) {
// 如果父节点存在,直接将新节点添加到父节点的children数组中
if (!parentNode.children) {
this.$set(parentNode, 'children', []);
}
parentNode.children.push(newNode);
} else {
// 如果没有指定父节点,则添加到根节点
this.treeData.push(newNode);
}
// 注意:不调用el-tree的updateKeyChildren方法
}
}
};
</script>
在上面的代码中,addNode
方法用于添加新节点。如果你指定了父节点,新节点将被添加到父节点的children
数组中。如果没有指定父节点,新节点将被添加到根节点。
请注意,在添加节点后不调用this.$refs.tree.updateKeyChildren()
方法。这意味着el-tree
组件不会重新渲染,因此树结构不会折叠。如果你需要保持当前的展开状态,可以在添加节点后手动扩展相应的树节点。
评论已关闭