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

<el-table>构建树形结构

最佳实践

el-table实现树形结构主要依靠row-keytree-props来实现的。
💫 无论是el-table实现的树形结构还是el-tree组件都是绑定的树形结构的数据,因此如果数据是扁平的话,需要进行树化。

代码

<template><div><el-table:data="tableData"style="width: 100%;margin-bottom: 20px;"row-key="id"borderdefault-expand-all:tree-props="{children: 'children', hasChildren: 'hasChildren'}"><el-table-columnprop="date"label="日期"sortablewidth="180"></el-table-column><el-table-columnprop="name"label="姓名"sortablewidth="180"></el-table-column><el-table-columnprop="address"label="地址"></el-table-column></el-table></div></template><script>export default {data() {return {tableData: [{id: 1,date: '2016-05-02',name: '王小虎',address: '上海市普陀区金沙江路 1518 弄'}, {id: 2,date: '2016-05-04',name: '王小虎',address: '上海市普陀区金沙江路 1517 弄'}, {id: 3,date: '2016-05-01',name: '王小虎',address: '上海市普陀区金沙江路 1519 弄',children: [{id: 31,date: '2016-05-01',name: '王小虎',address: '上海市普陀区金沙江路 1519 弄'}, {id: 32,date: '2016-05-01',name: '王小虎',address: '上海市普陀区金沙江路 1519 弄'}]}, {id: 4,date: '2016-05-03',name: '王小虎',address: '上海市普陀区金沙江路 1516 弄'}]}},methods: {},}</script>
当前视图

可以看到树形结构默认是打开的

在这里插入图片描述

核心属性

  • default-expand-all:树形结构打开还是关闭。
    关闭可以通过删除default-expand-all:default-expand-all = 'false'对属性值进行动态绑定,并将值置为false
  • children:指定子节点数据在父节点对象中的字段名,这里是 children 。
    也可以修改为其它名称,但是两处都需要进行修改
  • hasChildren:这个属性是非必须的,需要进行懒加载的时候才需要用到它。
    hasChildren需要和lazy属性、load属性来实现懒加载,lazy为true时,load方法才会生效。hasChildren属性和children属性相同,也可以修改名称。

懒加载

只加载需要展示的数据,其它数据等用户主动点击才会请求后端拿取。

代码

<template><div><el-table :data="tableData1" style="width: 100%" row-key="id" border lazy :load="load":tree-props="{ children: 'children', hasChildren: 'hasChildren' }"><el-table-column prop="date" label="日期" width="180"></el-table-column><el-table-column prop="name" label="姓名" width="180"></el-table-column><el-table-column prop="address" label="地址"></el-table-column></el-table></div>
</template>
<script>
export default {data() {return {tableData: [{id: 1,date: '2016-05-02',name: '王小虎',address: '上海市普陀区金沙江路 1518 弄'},{id: 2,date: '2016-05-04',name: '王小虎',address: '上海市普陀区金沙江路 1517 弄'},{id: 3,date: '2016-05-01',name: '王小虎',address: '上海市普陀区金沙江路 1519 弄',children: [{id: 31,date: '2016-05-01',name: '王小虎',address: '上海市普陀区金沙江路 1519 弄'},{id: 32,date: '2016-05-01',name: '王小虎',address: '上海市普陀区金沙江路 1519 弄'}]}, {id: 4,date: '2016-05-03',name: '王小虎',address: '上海市普陀区金沙江路 1516 弄'}],tableData1: [{id: 1,date: '2016-05-02',name: '王小虎',address: '上海市普陀区金沙江路 1518 弄'}, {id: 2,date: '2016-05-04',name: '王小虎',address: '上海市普陀区金沙江路 1517 弄'}, {id: 3,date: '2016-05-01',name: '王小虎',address: '上海市普陀区金沙江路 1519 弄',hasChildren: true}, {id: 4,date: '2016-05-03',name: '王小虎',address: '上海市普陀区金沙江路 1516 弄'}]}},methods: {load(row, treeNode, resolve) {// 查找对应的父节点const findChildren = (data, id) => {for (let item of data) {console.log(item.id);if (item.id === id) {console.log(item.id);return item.children || [];}}return [];};if (treeNode) {const children = findChildren(this.tableData, row.id);resolve(children);} else {resolve([]);}}},
}
</script>

效果图

在这里插入图片描述

到这里el-table加载树形结构就结束了。☺️

相关文章:

  • Deepfashion2 数据集使用笔记
  • JavaWeb:前端工程化-Vue
  • 基于大模型的结节性甲状腺肿智能诊疗系统技术方案
  • 简数采集技巧之快速获取特殊链接网址URL方法
  • 12.3Swing控件1
  • 2025年- H68-Lc176--46.全排列(回溯,组合)--Java版
  • Shiro安全权限框架
  • CCPC题目
  • [特殊字符] 深度剖析 n8n 与 Dify:使用场景、优劣势及技术选型建议
  • 性能剖析:在 ABP 框架中集成 MiniProfiler 实现性能可视化诊断
  • 《射频识别(RFID)原理与应用》期末复习 RFID第二章 RFID基础与前端(知识点总结+习题巩固)
  • 跨域请求解决方案全解析
  • Orthanc:轻量级PACS服务器与DICOMweb支持的技术详解
  • 防火墙设置实战操作案例(小白的“升级打怪”成长之路)
  • 如何搭建Z-Blog PHP版本:详细指南
  • 论文阅读笔记——Large Language Models Are Zero-Shot Fuzzers
  • 网络编程及原理(一)
  • 化学方程式配平免费API接口教程
  • Flutter、React Native 项目如何搞定 iOS 上架?从构建 IPA 到上传 App Store 的实战流程全解析
  • SVM超详细原理总结
  • 阿里云做企业网站/职业培训机构有哪些
  • app免费模板下载网站/西地那非片吃了能延时多久
  • 个人网站用凡科建站好吗/不受限制的万能浏览器
  • 商城类网站模板/怎么优化关键词
  • 自媒体网站大全/网络广告发布
  • 网站开发学生职业规划/seo排名策略