UNPKG

press-ui

Version:

简单、易用的跨端组件库,兼容 Vue2 和 Vue3,同时支持 uni-app和普通 Vue 项目

36 lines (27 loc) 756 B
function flattenVNodes(vnodes) { const result = []; function traverse(vnodes) { vnodes.forEach((vnode) => { result.push(vnode); if (vnode.componentInstance) { traverse(vnode.componentInstance.$children.map(item => item.$vnode)); } if (vnode.children) { traverse(vnode.children); } }); } traverse(vnodes); return result; } // sort children instances by vnodes order export function sortChildren(children, parent) { // #ifndef VUE3 const { componentOptions } = parent.$vnode; if (!componentOptions?.children) { return; } const vnodes = flattenVNodes(componentOptions.children); children.sort((a, b) => vnodes.indexOf(a.$vnode) - vnodes.indexOf(b.$vnode)); // #endif }