vue2 Elementui 树形组件怎么实现多选并获取选中节点的node对象

本文介绍了在Vue.js中使用树形组件进行部门管理和文章目录等场景的方法,重点讲解了node-click、check和check-change事件,以及getNode方法的用法,包括节点点击、选中状态变化和获取节点对象的操作。
摘要由CSDN通过智能技术生成

一.前言

树形组件是我们经常用到的组件,主要场景就是:公司后台管理的部门管理,做文章目录等。

二.常用的几种方法及说明

1.node-click:节点被点击时的回调

共三个参数,依次为:传递给 data 属性的数组中该节点所对应的对象、节点对应的 Node、节点组件本身。

<div class="container">
        <el-tree :data="data" show-checkbox node-key="id" ref="tree" highlight-current @node-click="clickFn"
            @check="check"></el-tree>
</div>
clickFn (data, node, item) {
            console.log(data);
            console.log(node);
            console.log(item);
 }

2.check:当复选框被点击的时候触发

共两个参数,依次为:传递给 data 属性的数组中该节点所对应的对象、树目前的选中状态对象,包含 checkedNodes、checkedKeys、halfCheckedNodes、halfCheckedKeys 四个属性

<div class="container">
        <el-tree :data="data" show-checkbox node-key="id" ref="tree" highlight-current @node-click="clickFn"
            @check="check"></el-tree>
    </div>
check (checkedNodes, checkedKeys) {
            // 获取选中节点的node对象
            this.nodes = checkedKeys.checkedNodes;
            for (let i = 0; i < this.nodes.length; i++) {
                let a = this.$refs.tree.getNode(this.nodes[i].id);
                console.log(a);
            }
        },

 3.check-change:节点选中状态发生变化时的回调

共三个参数,依次为:传递给 data 属性的数组中该节点所对应的对象、节点本身是否被选中、节点的子树中是否有被选中的节点

4.getNode方法:根据 data 或者 key 拿到 Tree 组件中的 node

(data) 要获得 node 的 key 或者 data

getNode方法的用法:this.$refs.tree.getNode(this.nodes[i].id);

参数就是节点的id:就是node-key绑定的id

例如:node-key="name";this.$refs.tree.getNode(this.nodes[i].name);

具体看需求,前提是你树形data里面有这个属性

5.check-on-click-node

是否在点击节点的时候选中节点,默认值为 false,即只有在点击复选框时才会选中节点。

6.default-expanded-keys

默认展开的节点的 key 的数组

三.我们实现标题中提到的需求主要用到check事件和getNode方法

check (checkedNodes, checkedKeys) {
            console.log(checkedNodes);
            console.log(checkedKeys);
            // 获取选中节点的node对象
            this.nodes = checkedKeys.checkedNodes;
            for (let i = 0; i < this.nodes.length; i++) {
                let a = this.$refs.tree.getNode(this.nodes[i].id);
                console.log(a);
            }
        },

 

### 回答1: Vue可以使用ElementUI树形组件来展示树形结构的数据。使用步骤如下: 1. 安装ElementUI组件库 可以通过npm或yarn安装ElementUI组件库,具体命令如下: ``` npm install element-ui --save ``` 或 ``` yarn add element-ui ``` 2. 引入ElementUI组件Vue项目的入口文件中,引入ElementUI组件库和样式文件,具体代码如下: ```javascript import Vue from 'vue' import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' Vue.use(ElementUI) ``` 3. 使用树形组件Vue组件中,使用ElementUIel-tree组件来展示树形结构的数据,具体代码如下: ```html <template> <el-tree :data="treeData" :props="treeProps"></el-tree> </template> <script> export default { data() { return { treeData: [ { label: '一级 1', children: [ { label: '二级 1-1', children: [ { label: '三级 1-1-1' }, { label: '三级 1-1-2' } ] }, { label: '二级 1-2', children: [ { label: '三级 1-2-1' }, { label: '三级 1-2-2' } ] } ] }, { label: '一级 2', children: [ { label: '二级 2-1', children: [ { label: '三级 2-1-1' }, { label: '三级 2-1-2' } ] }, { label: '二级 2-2', children: [ { label: '三级 2-2-1' }, { label: '三级 2-2-2' } ] } ] } ], treeProps: { label: 'label', children: 'children' } } } } </script> ``` 其中,treeData是树形数据,treeProps是树形组件的配置项,用于指定树形数据中的label和children字段。 以上就是使用ElementUI树形组件的基本步骤。 ### 回答2: Vue是一种流行的JavaScript框架,用于构建用户界面。ElementUI是一个基于Vue的UI组件库,其中包含许多常见的UI组件,包括树形组件ElementUI树形组件使开发人员能够轻松创建树形结构的界面元素,并可以满足各种需求。 要使用ElementUI树形组件,首先需要在Vue应用程序中安装ElementUI。有多种方法可以安装ElementUI,其中包括使用npm、CDN或下载源代码。在安装完成后,开发人员可以在需要使用树形组件的地方包含ElementUI中的<el-tree>标记。 使用ElementUI树形组件非常灵活。开发人员可以通过简单的属性更改来自定义树形组件的行为和外观。例如,可以使用“expand-on-click-node”属性来控制树形节点是否可以通过单击展开/关闭。开发人员还可以使用“:data”属性来传递树形节点的数据。此外,ElementUI还提供了许多事件和插槽,以便更好地控制树形组件的行为。 在许多应用程序中,树形结构是重要的用户界面元素。使用ElementUI树形组件可以使开发人员更轻松地创建和管理树形结构,并可以提高应用程序的可维护性和性能。无论是开发单页面应用程序还是多页面应用程序,使用ElementUI树形组件都是一个不错的选择。 ### 回答3: Vue 使用 ElementUI 树形组件非常方便。ElementUI 是一个基于 Vue.js组件库,提供了丰富的 UI 组件,其中包括了树形组件。以下是关于 Vue 使用 ElementUI 树形组件的一些注意事项和步骤: 安装 ElementUI: 在使用 ElementUI 之前,需要先安装它。在命令行中执行以下命令即可: ``` npm install element-ui --save ``` 使用 ElementUI 树形组件: 在 Vue 项目中使用 ElementUI 树形组件,需要先引入 ElementUI 和相应的组件。在 main.js 中添加如下内容: ``` import Vue from 'vue' import ElementUI from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' Vue.use(ElementUI) ``` 接下来就可以在需要使用树形组件的地方添加以下代码: ``` <template> <el-tree :data="data" :props="defaultProps"> </el-tree> </template> <script> export default { data() { return { data: [{ label: '一级 1', children: [{ label: '二级 1-1', children: [{ label: '三级 1-1-1' }] }] }, { label: '一级 2', children: [{ label: '二级 2-1', children: [{ label: '三级 2-1-1' }] }, { label: '二级 2-2', children: [{ label: '三级 2-2-1' }] }] }, { label: '一级 3', children: [{ label: '二级 3-1', children: [{ label: '三级 3-1-1' }] }, { label: '二级 3-2', children: [{ label: '三级 3-2-1' }] }] }], defaultProps: { children: 'children', label: 'label' } } } } </script> ``` 在这个例子中,我们使用了一个简单的树形结构。需要注意的是,在 data 中定义了树的结构,而在 defaultProps 中,则定义了树的属性。 以上就是 Vue 使用 ElementUI 树形组件的简单介绍。使用 ElementUI 提供的树形组件,可以更加轻松地实现树形结构的展示,并且具有良好的用户交互体验。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bug天选之子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值