【发布时间】:2020-02-25 13:56:22
【问题描述】:
大家好,我正在尝试在 Vue 中构建 Tree 组件,我现在有点怀疑我已经构建了一个递归组件,类似于这个,但更复杂的是复选框、拖放等
https://vuejs.org/v2/examples/tree-view.html
但现在我在网上查看一些示例,它们看起来是通过扁平化嵌套的 json 并从中制作一棵树来制作的
喜欢这个:
https://jsfiddle.net/fernando2684/p0k8szvj/43/
嗨,这里递归构建数组,然后用它构建树
recursive(obj, newObj, level, itemId, isExpend) {
let vm = this;
obj.forEach(function(o) {
if (o.children && o.children.length != 0) {
o.level = level;
o.leaf = false;
newObj.push(o);
if (o.id == itemId) {
o.expend = isExpend;
}
if (o.expend == true) {
vm.recursive(o.children, newObj, o.level + 1, itemId, isExpend);
}
} else {
o.level = level;
o.leaf = true;
newObj.push(o);
return false;
}
});
},
有人能告诉我,这样做有什么真正的好处,我认为它可能更容易维护,并且数组中的所有数据都是反应性的,因为它只有一个级别???
【问题讨论】:
-
我的猜测(基于 Redux)是扁平的对象结构更容易管理(想象一下嵌套对象多层次的变化)
-
是的,这是我的猜测,因为在 Vue 中它只跟踪一层深度
标签: javascript vue.js vuejs2