genData() — vue Function Reference
Architecture documentation for the genData() function in index.ts from the vue codebase.
Entity Profile
Dependency Diagram
graph TD 2f9548d4_5dab_e18c_c75b_5e2c2bf4a780["genData()"] 6a18399e_553e_fef8_6a39_746f79f94bd2["index.ts"] 2f9548d4_5dab_e18c_c75b_5e2c2bf4a780 -->|defined in| 6a18399e_553e_fef8_6a39_746f79f94bd2 009d7fc7_09cb_184e_e93c_1f468ff505c0["genElement()"] 009d7fc7_09cb_184e_e93c_1f468ff505c0 -->|calls| 2f9548d4_5dab_e18c_c75b_5e2c2bf4a780 c853697a_a300_4af8_8ebe_b8ab14fdba76["genComponent()"] c853697a_a300_4af8_8ebe_b8ab14fdba76 -->|calls| 2f9548d4_5dab_e18c_c75b_5e2c2bf4a780 65c98e23_e1e3_e4ac_083d_ca95d9519bbe["genDirectives()"] 2f9548d4_5dab_e18c_c75b_5e2c2bf4a780 -->|calls| 65c98e23_e1e3_e4ac_083d_ca95d9519bbe cac71b0e_014c_ebb4_99ba_c0a5c9456dff["genProps()"] 2f9548d4_5dab_e18c_c75b_5e2c2bf4a780 -->|calls| cac71b0e_014c_ebb4_99ba_c0a5c9456dff 8ee0ad78_1765_a17a_b19d_4e3acc54fa2c["genHandlers()"] 2f9548d4_5dab_e18c_c75b_5e2c2bf4a780 -->|calls| 8ee0ad78_1765_a17a_b19d_4e3acc54fa2c e76cb7d0_b3c3_6c47_2e67_6c6f84d32371["genScopedSlots()"] 2f9548d4_5dab_e18c_c75b_5e2c2bf4a780 -->|calls| e76cb7d0_b3c3_6c47_2e67_6c6f84d32371 e938c7fb_0689_18e9_dee1_047bd690c1b0["genInlineTemplate()"] 2f9548d4_5dab_e18c_c75b_5e2c2bf4a780 -->|calls| e938c7fb_0689_18e9_dee1_047bd690c1b0 style 2f9548d4_5dab_e18c_c75b_5e2c2bf4a780 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
src/compiler/codegen/index.ts lines 277–359
export function genData(el: ASTElement, state: CodegenState): string {
let data = '{'
// directives first.
// directives may mutate the el's other properties before they are generated.
const dirs = genDirectives(el, state)
if (dirs) data += dirs + ','
// key
if (el.key) {
data += `key:${el.key},`
}
// ref
if (el.ref) {
data += `ref:${el.ref},`
}
if (el.refInFor) {
data += `refInFor:true,`
}
// pre
if (el.pre) {
data += `pre:true,`
}
// record original tag name for components using "is" attribute
if (el.component) {
data += `tag:"${el.tag}",`
}
// module data generation functions
for (let i = 0; i < state.dataGenFns.length; i++) {
data += state.dataGenFns[i](el)
}
// attributes
if (el.attrs) {
data += `attrs:${genProps(el.attrs)},`
}
// DOM props
if (el.props) {
data += `domProps:${genProps(el.props)},`
}
// event handlers
if (el.events) {
data += `${genHandlers(el.events, false)},`
}
if (el.nativeEvents) {
data += `${genHandlers(el.nativeEvents, true)},`
}
// slot target
// only for non-scoped slots
if (el.slotTarget && !el.slotScope) {
data += `slot:${el.slotTarget},`
}
// scoped slots
if (el.scopedSlots) {
data += `${genScopedSlots(el, el.scopedSlots, state)},`
}
// component v-model
if (el.model) {
data += `model:{value:${el.model.value},callback:${el.model.callback},expression:${el.model.expression}},`
}
// inline-template
if (el.inlineTemplate) {
const inlineTemplate = genInlineTemplate(el, state)
if (inlineTemplate) {
data += `${inlineTemplate},`
}
}
data = data.replace(/,$/, '') + '}'
// v-bind dynamic argument wrap
// v-bind with dynamic arguments must be applied using the same v-bind object
// merge helper so that class/style/mustUseProp attrs are handled correctly.
if (el.dynamicAttrs) {
data = `_b(${data},"${el.tag}",${genProps(el.dynamicAttrs)})`
}
// v-bind data wrap
if (el.wrapData) {
data = el.wrapData(data)
}
// v-on data wrap
if (el.wrapListeners) {
data = el.wrapListeners(data)
}
Domain
Subdomains
Defined In
Called By
Source
Frequently Asked Questions
What does genData() do?
genData() is a function in the vue codebase, defined in src/compiler/codegen/index.ts.
Where is genData() defined?
genData() is defined in src/compiler/codegen/index.ts at line 277.
What does genData() call?
genData() calls 5 function(s): genDirectives, genHandlers, genInlineTemplate, genProps, genScopedSlots.
What calls genData()?
genData() is called by 2 function(s): genComponent, genElement.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free