vue el-tree设置选中的树节点

这篇博客介绍了如何在Vue项目中使用el-tree组件,并通过`node-key`和`setCurrentKey`方法实现节点的点击选中效果。示例代码展示了在节点被点击时,如何设置当前选中的节点ID。

vue el-tree设置选中的树节点

<el-tree 
	ref="tree"
     :data="treeData"
     highlight-current
     node-key="nodeId"
     @node-click="handleNodeClick"
     :props="defaultProps">
 </el-tree>

设置选中状态

    handleNodeClick(data) {
	    this.$nextTick(() => {
	        this.$refs.tree.setCurrentKey(data.nodeId)
	    })
    },
Vue 3中,自定义设置el-tree树节点有以下几种方法: - **自定义节点样式**:可以通过设置`render-content`属性关联自定义渲染函数,来替代默认的节点渲染方式。示例代码如下: ```vue <template> <el-tree :data="treeData" :node-key="node => node.id" :render-content="renderContent"></el-tree> </template> <script setup> import { ref } from 'vue'; const treeData = ref([{ id: 1, label: 'Node 1' }]); const renderContent = (h, { node, data, store }) => { // 自定义渲染逻辑 return h('div', { style: { color: 'red' } }, node.label); }; </script> ``` 这里的`renderContent`函数接收`h`(Vue的`createElement`函数)以及节点相关信息,用于手动创建虚拟DOM节点,灵活创建自定义DOM结构,替代默认的节点渲染 [^1][^4]。 - **自定义节点内容**:使用模板插槽来自定义节点内容。示例如下: ```vue <template> <el-tree :data="data" :props="defaultProps" ref="treeRef" show-checkbox @check-change="handleCheckChange"> <!-- 自定义节点内容 --> <template #default="{ node, data, store }"> <span class="tree-node-content"> <!-- 黄色五角星 --> <span v-if="node.level != 1" class="yellow-star" @click="handleStarClick(node)"> <el-icon><Star /></el-icon> </span> <!-- 节点文本 --> <span class="node-label">{{ node.label }}</span> <span v-if="node.level != 1" style="width: 10px;height: 10px;background: red;border-radius: 50%;margin-left: 18px;"></span> </span> </template> </el-tree> </template> <script setup> import { ref } from 'vue'; import { Star } from '@element-plus/icons-vue'; const data = ref([{ label: 'Node 1' }]); const defaultProps = ref({ label: 'label' }); const treeRef = ref(null); const handleCheckChange = (checkedKeys, checkedNodes) => { // 处理节点选中状态变化 }; const handleStarClick = (node) => { // 处理五角星点击事件 }; </script> ``` 在这个示例中,通过`#default`插槽来自定义每个节点的内容,可在插槽中添加各种元素和交互逻辑 [^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值