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

Function ssrRenderAttrs

packages/server-renderer/src/helpers/ssrRenderAttrs.ts:27–60  ·  view source on GitHub ↗
(
  props: Record<string, unknown>,
  tag?: string,
)

Source from the content-addressed store, hash-verified

25)
26
27export function ssrRenderAttrs(
28 props: Record<string, unknown>,
29 tag?: string,
30): string {
31 let ret = ''
32 for (let key in props) {
33 if (
34 shouldIgnoreProp(key) ||
35 isOn(key) ||
36 (tag === 'textarea' && key === 'value') ||
37 // force as property (not rendered in SSR)
38 key.startsWith('.')
39 ) {
40 continue
41 }
42 const value = props[key]
43 // force as attribute
44 if (key.startsWith('^')) key = key.slice(1)
45 if (key === 'class') {
46 ret += ` class="${ssrRenderClass(value)}"`
47 } else if (key === 'style') {
48 ret += ` style="${ssrRenderStyle(value)}"`
49 } else if (key === 'className') {
50 // className should not go through ssrRenderClass which normalizes non-string
51 // values into strings. it should coerce directly into strings
52 if (value != null) {
53 ret += ` class="${escapeHtml(String(value))}"`
54 }
55 } else {
56 ret += ssrRenderDynamicAttr(key, value, tag)
57 }
58 }
59 return ret
60}
61
62// render an attr with dynamic (unknown) key.
63export function ssrRenderDynamicAttr(

Callers 4

renderElementVNodeFunction · 0.90
ssrRenderFunction · 0.90
ssrScopeId.spec.tsFile · 0.90

Calls 6

isOnFunction · 0.90
escapeHtmlFunction · 0.90
ssrRenderClassFunction · 0.85
ssrRenderStyleFunction · 0.85
StringInterface · 0.85
ssrRenderDynamicAttrFunction · 0.85

Tested by 1

ssrRenderFunction · 0.72