genDefaultModel() — vue Function Reference
Architecture documentation for the genDefaultModel() function in model.ts from the vue codebase.
Entity Profile
Dependency Diagram
graph TD 811f9f99_b9dc_79e8_ddcc_7bc64cf6b8f6["genDefaultModel()"] 15390ccf_ab46_d508_a1ed_b3b87cc03914["model.ts"] 811f9f99_b9dc_79e8_ddcc_7bc64cf6b8f6 -->|defined in| 15390ccf_ab46_d508_a1ed_b3b87cc03914 d13f0020_9aae_98ba_33de_e0cf5575ddfd["model()"] d13f0020_9aae_98ba_33de_e0cf5575ddfd -->|calls| 811f9f99_b9dc_79e8_ddcc_7bc64cf6b8f6 style 811f9f99_b9dc_79e8_ddcc_7bc64cf6b8f6 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