vue2树组件el-tree,实现点击节点页面跳转功能,每个节点前面加图标,类似于el-menu菜单切换操作
学到了
该回答引用GPT:
对于vue2的树组件el-tree,实现点击节点页面跳转功能,可以通过监听节点点击事件,并在事件回调函数中利用vue-router路由跳转实现。首先需要在树组件中的节点模板中添加图标,例如使用elementUI的Icon组件实现,然后在Tree组件中设置node-key属性,指定每个节点的唯一标识,方便在事件回调函数中获取节点信息。代码如下:
<template>
<el-tree
:data="treeData"
:node-key="nodeKey"
:expand-on-click-node="false"
@node-click="handleNodeClick"
>
<template v-slot="{node}">
<span>
<i class="el-icon-folder"></i>
{{node.label}}
</span>
</template>
</el-tree>
</template>
<script>
import { mapActions } from 'vuex'
export default {
data() {
return {
treeData: [
{
id: 1,
label: '节点1'
},
{
id: 2,
label: '节点2',
children: [
{
id: 3,
label: '节点3'
},
{
id: 4,
label: '节点4'
}
]
}
],
nodeKey: 'id'
}
},
methods: {
...mapActions(['setActiveNode']),
handleNodeClick(data) {
this.setActiveNode(data) // 存储当前激活节点信息
this.$router.push('/detail') // 路由跳转到详情页
}
}
}
</script>
在事件回调函数中,我们可以通过调用vue-router实例的push方法进行路由跳转,具体跳转的路径需要根据每个节点的不同情况进行定制化。此外,上述代码中还使用了Vuex来存储当前激活节点信息,以实现类似于el-menu的菜单切换操作。
如还有疑问,可留言帮助解决。