UNPKG

vue

Version:

Reactive, component-oriented view layer for modern web interfaces.

36 lines (33 loc) 826 B
/* @flow */ import { isObject, isDef } from 'core/util/index' /** * Runtime helper for rendering v-for lists. */ export function renderList ( val: any, render: () => VNode ): ?Array<VNode> { let ret: ?Array<VNode>, i, l, keys, key if (Array.isArray(val) || typeof val === 'string') { ret = new Array(val.length) for (i = 0, l = val.length; i < l; i++) { ret[i] = render(val[i], i) } } else if (typeof val === 'number') { ret = new Array(val) for (i = 0; i < val; i++) { ret[i] = render(i + 1, i) } } else if (isObject(val)) { keys = Object.keys(val) ret = new Array(keys.length) for (i = 0, l = keys.length; i < l; i++) { key = keys[i] ret[i] = render(val[key], key, i) } } if (isDef(ret)) { (ret: any)._isVList = true } return ret }