VUE递归组件实现一个简单的树形结构

    关于什么情况下使用以及里面使用的部分原理在本文就不做说明了,现在介绍的只是简单的一种实现的方式;

先看下实现的效果:

VUE递归组件实现一个简单的树形结构_第1张图片

简单介绍下这个组件的功能:

1. 显示是否存在下级菜单的左侧按钮提示

2. 展开的时候的左侧按钮的展示状态的改变

3. 选中的时候文字的颜色的变化

4. 点击文字选中的时候会返回当前的这个位置的内容(可根据自己需求进行修改)

先看下父组件的代码:






父组件的代码很简单,引入了我们的这个递归的组件,引入eventBus,关于eventBus使用请自行百度;父组件需要说明的位置只有一个地方,那就是mounted里面的这个方法,关于eventBus使用就不说明了,方法里面的这个位置:this.chooseItem = item.name + index + '@#$%'; 这个保存的是要高亮显示的那个item,这个位置可以自己定义,我这里这么写只是为了避免重复,相当于一个id的作用。

下面是子组件的代码,子组件相对父组件来说多了些东西,但是也并不复杂,核心还是组件的递归:






上面的是这个树形结构实现的整体的逻辑,代码整体都在上面了,可根据项目的需求进行修改。

你可能感兴趣的:(js)