Vue3 + Element-plus Tree 组件的 @check 事件使用方案

在 Vue 3 中使用 ElementUI 的 Tree 组件的 @check 事件与 Vue 2 类似。你可以通过监听 @check 事件来处理节点选中状态的变化。以下是在 Vue 3 中如何使用 @check 事件:

  1. 首先,确保你已经安装了 ElementUI 组件库。
  2. 在你的 Vue 组件中,使用 Tree 组件,并监听 @check 事件:
vue 复制代码
<template>
  <div>
    <el-tree
      :data="treeData"
      show-checkbox
      :node-key="node => node.id" <!-- 使用函数返回节点的 id -->
      @check="handleCheck"
    ></el-tree>


    <el-tree
                :data="scenic.data"
                show-checkbox
                node-key="id"
                :props="defaultProps"
                @check="clic"
                :default-checked-keys="[checkboxed]"
                ref="treeRef"
                :default-expanded-keys="[checkboxed]"
              />
  </div>
</template>

<script>
import { ref } from 'vue';

export default {
  setup() {
    const treeData = ref([
      {
        id: 1,
        label: 'Node 1',
        children: [
          { id: 2, label: 'Node 1-1' },
          { id: 3, label: 'Node 1-2' },
        ],
      },
      {
        id: 4,
        label: 'Node 2',
        children: [
          { id: 5, label: 'Node 2-1' },
          { id: 6, label: 'Node 2-2' },
        ],
      },
    ]);

    const handleCheck = (checkedNodes, checkedKeys) => {
      console.log('Checked nodes:', checkedNodes);
      console.log('Checked keys:', checkedKeys);
    };

    const checkboxed = ref([]);
		const treeRef = ref<InstanceType<typeof ElTree>>();
		const url = ref([]);

		const defaultProps = {
  		children: "url",
  		label: "name"
		};

    return {
      treeData,
      handleCheck,
    };
  },
};
</script>

<style>
/* 在这里添加你的样式 */
</style>

在这个示例中,我们使用了 Vue 3 的 Composition API,通过 ref 来定义响应式数据。与 Vue 2 不同的是,Vue 3 使用 setup() 函数来设置组件的逻辑。在 setup() 函数中,我们定义了 treeDatahandleCheck 方法。

与 Vue 2 相似,我们在 el-tree 组件中使用 show-checkbox 属性显示复选框,并通过 :node-key 属性来设置节点的唯一标识(这里使用了一个函数返回节点的 id)。然后,在 @check 事件中调用 handleCheck 方法来处理选中状态的变化。

请根据你的实际需求进行逻辑处理。这只是一个简单的示例,你可以根据实际情况来设计你的 Tree 组件和处理方法。

相关推荐
北辰alk1 分钟前
为什么不建议在 Vue 中同时使用 v-if 和 v-for?深度解析与最佳实践
vue.js
北辰alk3 分钟前
Vue 模板中保留 HTML 注释的完整指南
vue.js
G_G#6 分钟前
纯前端js插件实现同一浏览器控制只允许打开一个标签,处理session变更问题
前端·javascript·浏览器标签页通信·只允许一个标签页
北辰alk16 分钟前
Vue 组件 name 选项:不只是个名字那么简单
vue.js
北辰alk18 分钟前
Vue 计算属性与 data 属性同名:优雅的冲突还是潜在的陷阱?
vue.js
北辰alk18 分钟前
Vue 的 v-show 和 v-if:性能、场景与实战选择
vue.js
@大迁世界21 分钟前
TypeScript 的本质并非类型,而是信任
开发语言·前端·javascript·typescript·ecmascript
Amumu1213835 分钟前
React面向组件编程
开发语言·前端·javascript
计算机毕设VX:Fegn089539 分钟前
计算机毕业设计|基于springboot + vue二手家电管理系统(源码+数据库+文档)
vue.js·spring boot·后端·课程设计
冰暮流星1 小时前
javascript逻辑运算符
开发语言·javascript·ecmascript