chore: add flattenVNodes

This commit is contained in:
chenjiahan 2020-09-22 21:01:52 +08:00
parent 053006de52
commit c1931e6608

View File

@ -0,0 +1,25 @@
import { VNode, isVNode, VNodeNormalizedChildren } from 'vue';
export function flattenVNodes(children: VNodeNormalizedChildren) {
const result: VNode[] = [];
const traverse = (children: VNodeNormalizedChildren) => {
if (!Array.isArray(children)) {
return;
}
children.forEach((child) => {
if (isVNode(child)) {
result.push(child);
if (child.children) {
traverse(child.children);
}
}
});
};
traverse(children);
return result;
}