当前位置: 首页 > news >正文

Vue3树形控件实现跳转页面

今天想分享的是Vue3中利用element-plus中的树形控件实现跳转页面,做成类似标签页tabs一样的效果。

1、什么是树形控件

树形控件即可以展现层级结构,可以清晰的看到什么需求在哪个项目下,如下图所示
树形控件直通车
树形控件

2、分析树形控件的基本代码

树形控件的代码包括如下几部分,树形代码组件el-tree,ts的接口,自带的点击事件,还有data数据,如果有使用element组件的应该熟悉这些,这里不过多介绍

<template>
  <el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick" />
</template>

<script lang="ts" setup>
interface Tree {
  label: string
  children?: Tree[]
}

const handleNodeClick = (data: Tree) => {
  console.log(data)
}

const data: Tree[] = [
  {
    label: 'Level one 1',
    children: [
      {
        label: 'Level two 1-1',
        children: [
          {
            label: 'Level three 1-1-1',
          },
        ],
      },
    ],
  },
]

const defaultProps = {
  children: 'children',
  label: 'label',
}
</script>

3、树形控件实现跳转页面思路

3.1、基本的页面布局

树形控件实现跳转页面的基本布局如下,有点类似于tabs的标签在左边的布局
基本的页面布局

3.2、实现思路

我们需要在点击树形控件的每一个节点的时候,获取到节点的id,这样我们就可以根据不同的id去展现不同的页面
①拿到id
②把id通过emit传值到右边页面组件
③右边页面组件根据id展现不同的页面

4、代码实现过程

4.1、利用树形控件事件拿到id

树形控件事件

//树形控件页面
<el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick" />
//利用emit
<script>
	const emit = defineEmits(['事件'])
	const handleNodeClick = (数据: Tree) => {
		emit('事件', 数据)
	}
</script>

4.2、左边页面拿到树形控件id并选择对应的页面

//左边页面
<template>
<树形控件页面  @事件='得到id'/>
<页面1 :id='对应的id' v-if="对应的id.id == 1">
<页面2 :id='对应的id' v-if="对应的id.id == 2">
<页面3 :id='对应的id' v-if="对应的id.id == 3">
</template>

<script>
//导入树形控件
impore 树形控件 form ...
const 对应的id = ref()
const 得到id = (传过来的值) => {
//传过来的id
	let id = 传过来的值.id
	对应的id.value.id = id
}
</script>

如在前端开发中遇到问题,可私聊博主
如有不一样的见解,可在评论区评论,谢谢大家

相关文章:

  • C++-字符串处理函数-查找-截取-分割-替换-删除-格式化-与数值互转-拼接-正则表达式-常用功能
  • LeetCode 790. 多米诺和托米诺平铺
  • Qt基础之四:Qt信号与槽机制原理及优缺点
  • 机器学习笔记 十七:基于Gini Importance、Permutation Importance、Boruta的随机森林模型重要性评估的比较
  • 大数据ClickHouse进阶(二十七):ClickHouse服务监控
  • 02 【nodejs开发环境安装】
  • 【Designing ML Systems】第 2 章 :机器学习系统设计简介
  • C++与C语言中的字符串
  • 8. 无线体内纳米网:基于蓝牙LE接口的数字ID系统
  • 极智AI | 昇腾 CANN ATC 模型转换
  • 富文本编辑器(添加列表)
  • 格理论与密码学-2-2-公钥密码体制和哈希函数
  • Vue框架的学习(Vue操作指令学习三 V-bind )第三课
  • C语言之指针(中)
  • neo4j-jdbc-driver这个坑货
  • 云存储系统架构及优势
  • Oracle SQL执行计划操作(1)——表相关操作
  • C语言实现三子棋小游戏(源码+教程)
  • 解读数据可用性赛道:如何讲好模块化区块链的叙事?
  • 如何进入 mysql?