vue树形列表,vue树结构自定义树节点内容

  vue树形列表,vue树结构自定义树节点内容

  在做项目中,会遇到一些树形的数据结构,常用在左侧菜单导航,本文就介绍一下如何实现,感兴趣的可以了解一下

  

目录

   组件递归调用使用提出方法在做项目中,会遇到一些树形的数据结构,常用在左侧菜单导航,或者评论引用等地方,这种数据结构有个特点是不知道它会嵌套多少层,所以用模板去展示这样的数据时就有点棘手,这篇文章梳理两种展示这种数据结构的方法。

  文章中用到的数据是下面这个:

  主数据:{

  值:"根",

  孩子:[{

  值: 层级1-1,

  孩子:[{

  值: 层级2-1,

  孩子:[{

  值: 层级3-1,

  儿童:[]

  }]

  },{

  值: 层级2-2,

  儿童:[]

  }]

  },{

  值: 层级1-2,

  儿童:[]

  }]

  }

  也就是下面这个样子。

  

组件递归调用

  第一种是组件递归调用自己的方式,创建一个组件,该组件在引用自己去展示孩子们的数据,子组件如下:

  模板

  差异

  div class=demo

  {{treeData.value}}

  treeData中的tree-comp v-for=(item,index)。 children :treeData= item /tree-comp

  /div

  /div

  /模板

  脚本

  导出默认值{

  名称:“treeComp”,

  道具:{

  treeData: {

  默认值:函数(){

  返回{}

  }

  }

  },

  已安装(){},

  方法:{}

  }

  /脚本

  style lang=less 范围。demo { padding:5px 0;边距:1px 10px文本对齐:左对齐;字体大小:16px最大宽度:500像素;边框-左侧:1px虚线# 999;

  :在{内容:-之前;显示:内嵌-块;填充:0 4px}

  }

  /风格

  然后创建父组件,父组件使用子组件,并将数据传入子组件。

  模板

  tree-comp:treeData=主数据/tree-comp

  /模板

  脚本

  导出默认值{

  名称: treeMain ,

  data () {

  返回{

  主数据:{

  值:"根",

  儿童:[

  {

  值: 层级1-1,

  孩子:[{

  值: 层级2-1,

  孩子:[{

  值: 层级3-1,

  儿童:[]

  }]

  },{

  值: 层级2-2,

  儿童:[]

  }]

  },{

  值: 层级1-2,

  儿童:[]

  }

  ]

  }

  }

  },

  组件:{

  tree-comp: ()=import(./tree comp’)

  },

  已安装(){},

  方法:{}

  }

  /脚本

  关于递归组件的内容,在官方文档里是有提到的-递归组件

  

使用render方法

  除了使用组件的方式,也可以使用某视频剪辑软件的提出方法,去利用Java脚本语言的完全编程的能力,实现递归处理树形数据,从而展示出无限层级树。如下:

  模板

  tree-comp:treeData=主数据/tree-comp

  /模板

  脚本

  导出默认值{

  名称: treeRender ,

  data () {

  返回{

  主数据:{

  值:"根",

  儿童:[

  {

  值: 层级1-1,

  孩子:[{

  值: 层级2-1,

  孩子:[{

  值: 层级3-1,

  儿童:[]

  }]

  },{

  值: 层级2-2,

  儿童:[]

  }]

  },{

  值: 层级1-2,

  儿童:[]

  }

  ]

  }

  }

  },

  组件:{

  treeComp:{

  功能性:真的,

  道具:{treeData: Object},

  render(h,{ props:{ treeData={ } }){

  const creatNode=(node)={

  如果(节点。子节点。孩子。长度0){

  设hArr=node。孩子。地图(项目={

  返回创建节点(项目)

  })

  返回h(div ,{class:demo},[node.value,hArr])

  }否则{

  返回h(div ,{class:demo},[node.value])

  }

  }

  返回创建节点(树数据)

  },

  }

  },

  已安装(){},

  方法:{}

  }

  /脚本

  style lang=less 范围。demo { padding:5px 0;边距:1px 10px文本对齐:左对齐;字体大小:16px最大宽度:500像素;左边框:1px虚线# 999;

  :在{content: -之前;显示:内嵌-块;填充:0 4px}

  }

  /风格

  其核心是在render方法中,creatNode方法先递归深度遍历树数据,生成vnode,然后渲染页面。

  以上就是本文关于VUE无限层次树数据结构显示的实现。有关VUE无限分层树结构的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望大家以后能多多支持我们!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: