Open yangsirgo opened 5 years ago
compileFlatState () { // so we have always a relation parent/children of each node
let keyCounter = 0;
let childrenKey = ‘childrens’;
const flatTree = [];
function flattenChildren(node, parent) {
node.nodeKey = keyCounter++;
flatTree[node.nodeKey] = { node: node, nodeKey: node.nodeKey };
if (typeof parent != 'undefined') {
flatTree[node.nodeKey].parent = parent.nodeKey;
flatTree[parent.nodeKey][childrenKey].push(node.nodeKey);
}
if (node[childrenKey]) {
flatTree[node.nodeKey][childrenKey] = [];
node[childrenKey].forEach(child => flattenChildren(child, node));
}
}
this.stateTree.forEach(rootNode => {
flattenChildren(rootNode);
});
return flatTree;
}
将深入的树形结构,给变成同级数组形式。
[{
id:'1',
childrens :[{
id:"2"
}]
}]
更改为:
[{
id:'1',
node:0,
childrens :[{
id:"2"
}]
},{
node:1,
id:2
}]
$emit 用于父子事件传递时使用,在组件嵌套组件的情况下并不适用。 iview里面的代码:
这段代码试用于非父子组件数据传递。从子孙组件往上发送事件。
这段代码试用于非父子组件数据传递。从父亲爷爷辈的组件往下发送事件。