genDefaultModel() — vue Function Reference
Architecture documentation for the genDefaultModel() function in model.ts from the vue codebase.
Entity Profile
Dependency Diagram
graph TD 07b4d6e7_52ba_9802_3ead_ef4ddd722b34["genDefaultModel()"] fba67da2_5967_6779_f088_36da3dcbd363["model.ts"] 07b4d6e7_52ba_9802_3ead_ef4ddd722b34 -->|defined in| fba67da2_5967_6779_f088_36da3dcbd363 604989de_6282_4011_dd2f_f80716675ba4["model()"] 604989de_6282_4011_dd2f_f80716675ba4 -->|calls| 07b4d6e7_52ba_9802_3ead_ef4ddd722b34 style 07b4d6e7_52ba_9802_3ead_ef4ddd722b34 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
src/platforms/web/compiler/directives/model.ts lines 137–181
function genDefaultModel(
el: ASTElement,
value: string,
modifiers?: ASTModifiers | null
): boolean | void {
const type = el.attrsMap.type
// warn if v-bind:value conflicts with v-model
// except for inputs with v-bind:type
if (__DEV__) {
const value = el.attrsMap['v-bind:value'] || el.attrsMap[':value']
const typeBinding = el.attrsMap['v-bind:type'] || el.attrsMap[':type']
if (value && !typeBinding) {
const binding = el.attrsMap['v-bind:value'] ? 'v-bind:value' : ':value'
warn(
`${binding}="${value}" conflicts with v-model on the same element ` +
'because the latter already expands to a value binding internally',
el.rawAttrsMap[binding]
)
}
}
const { lazy, number, trim } = modifiers || {}
const needCompositionGuard = !lazy && type !== 'range'
const event = lazy ? 'change' : type === 'range' ? RANGE_TOKEN : 'input'
let valueExpression = '$event.target.value'
if (trim) {
valueExpression = `$event.target.value.trim()`
}
if (number) {
valueExpression = `_n(${valueExpression})`
}
let code = genAssignmentCode(value, valueExpression)
if (needCompositionGuard) {
code = `if($event.target.composing)return;${code}`
}
addProp(el, 'value', `(${value})`)
addHandler(el, event, code, null, true)
if (trim || number) {
addHandler(el, 'blur', '$forceUpdate()')
}
}
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does genDefaultModel() do?
genDefaultModel() is a function in the vue codebase, defined in src/platforms/web/compiler/directives/model.ts.
Where is genDefaultModel() defined?
genDefaultModel() is defined in src/platforms/web/compiler/directives/model.ts at line 137.
What calls genDefaultModel()?
genDefaultModel() is called by 1 function(s): model.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free