这篇介绍的内容稍微复杂一点,用VUE来实现树结构。目前这个属性结构没有编辑功能,只是显示。明天再开一篇介绍如何添加编辑功能,标题已经想好了。先看今天的展示:必须用递归来建树,直观明了的使用槽的方式已经行不通了。只能通过属性参数给组件传递一个树形的数据结构。传入的数据结构如下所示:[{title:'page'selected:false,opened:false,isFolder:true,children:[{title:'index.html',selected:false,opened:false,icon:"farfa-file-code",},{title:'product.html',selected:false,opened:false,icon:"farfa-file-code",},],},{title:'样式'selected:false,opened:false,isFolder:true,children:[{title:'style.css',selected:false,opened:false,icon:"远文件代码",},],},]每个节点通过子节点嵌套子节点。需要注意的是,我们希望这棵树是可以编辑的,它的节点是可以增删改查的,所以需要对数据进行双向绑定,并且不能通过普通的属性prop传递给组件,而是通过通过v模型。在RXEditor工程中,只有两处使用了树结构。要做的组件可以满足这两个要求,因为构建一个通用的类库比较简单。这两个地方其中一个是用来显示和编辑文件目录结构的,另一个是节点树,纯显示,没有编辑功能。只能选择文件树的叶子节点,可以选择节点树的所有节点。都是单选,没有多选要求。给这个控件起一个令人印象深刻的名字,我们称它为NodeTree。让我们先看看如何使用NodeTree。第一次调用:
