mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-05-22 14:39:16 +08:00
chore: add flattenVNodes
This commit is contained in:
parent
053006de52
commit
c1931e6608
25
src/composition/use-relation.ts
Normal file
25
src/composition/use-relation.ts
Normal 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;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user