MCPcopy
hub / github.com/vuejs/core / ssrRenderList

Function ssrRenderList

packages/server-renderer/src/helpers/ssrRenderList.ts:4–36  ·  view source on GitHub ↗
(
  source: unknown,
  renderItem: (value: unknown, key: string | number, index?: number) => void,
)

Source from the content-addressed store, hash-verified

2import { warn } from '@vue/runtime-core'
3
4export function ssrRenderList(
5 source: unknown,
6 renderItem: (value: unknown, key: string | number, index?: number) => void,
7): void {
8 if (isArray(source) || isString(source)) {
9 for (let i = 0, l = source.length; i < l; i++) {
10 renderItem(source[i], i)
11 }
12 } else if (typeof source === 'number') {
13 if (__DEV__ && (!Number.isInteger(source) || source < 0)) {
14 warn(
15 `The v-for range expects a positive integer value but got ${source}.`,
16 )
17 return
18 }
19 for (let i = 0; i < source; i++) {
20 renderItem(i + 1, i)
21 }
22 } else if (isObject(source)) {
23 if (source[Symbol.iterator as any]) {
24 let i = 0
25 for (const item of source as Iterable<any>) {
26 renderItem(item, i++)
27 }
28 } else {
29 const keys = Object.keys(source)
30 for (let i = 0, l = keys.length; i < l; i++) {
31 const key = keys[i]
32 renderItem(source[key], key, i)
33 }
34 }
35 }
36}

Callers 1

Calls 3

isStringFunction · 0.90
warnFunction · 0.90
isObjectFunction · 0.90

Tested by

no test coverage detected