UNPKG

klook-web-uikit

Version:

A Component Library for Vue.js

62 lines (56 loc) 1.91 kB
// 判断参数是否是其中之一 export function oneOf (value, validList) { return validList.indexOf(value) !== -1; } // Find components upward export function findComponentUpward (context, componentName, componentNames) { if (typeof componentName === 'string') { componentNames = [componentName]; } else { componentNames = componentName; } let parent = context.$parent; let name = parent.$options.name; while (parent && (!name || componentNames.indexOf(name) < 0)) { parent = parent.$parent; if (parent) name = parent.$options.name; } return parent; } // Find component downward export function findComponentDownward (context, componentName) { const childrens = context.$children; let children = null; if (childrens.length) { for (const child of childrens) { const name = child.$options.name; if (name === componentName) { children = child; break; } else { children = findComponentDownward(child, componentName); if (children) break; } } } return children; } // Find components downward export function findComponentsDownward (context, componentName) { return context.$children.reduce((components, child) => { if (child.$options.name === componentName) components.push(child); const foundChilds = findComponentsDownward(child, componentName); return components.concat(foundChilds); }, []); } // Find components upward export function findComponentsUpward (context, componentName) { let parents = []; const parent = context.$parent; if (parent) { if (parent.$options.name === componentName) parents.push(parent); return parents.concat(findComponentsUpward(parent, componentName)); } else { return []; } }