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