processAttrs() — vue Function Reference
Architecture documentation for the processAttrs() function in index.ts from the vue codebase.
Entity Profile
Dependency Diagram
graph TD 94cd3ed6_4fec_eddb_c90a_1c38249e5b02["processAttrs()"] 320ee0f4_351d_a6b2_1c1c_f0f6f42fb987["index.ts"] 94cd3ed6_4fec_eddb_c90a_1c38249e5b02 -->|defined in| 320ee0f4_351d_a6b2_1c1c_f0f6f42fb987 d580ca1c_dbf7_89f2_e0e4_6199ea988b51["processElement()"] d580ca1c_dbf7_89f2_e0e4_6199ea988b51 -->|calls| 94cd3ed6_4fec_eddb_c90a_1c38249e5b02 4ef095e8_33df_71cc_7c57_18b2bc8f0a54["parseModifiers()"] 94cd3ed6_4fec_eddb_c90a_1c38249e5b02 -->|calls| 4ef095e8_33df_71cc_7c57_18b2bc8f0a54 b1101a58_6379_8514_36a1_9d7f75b2b23f["parseFilters()"] 94cd3ed6_4fec_eddb_c90a_1c38249e5b02 -->|calls| b1101a58_6379_8514_36a1_9d7f75b2b23f 65a029a4_19bc_73e7_6dce_b5010c35150b["genAssignmentCode()"] 94cd3ed6_4fec_eddb_c90a_1c38249e5b02 -->|calls| 65a029a4_19bc_73e7_6dce_b5010c35150b 6d3095ae_d92b_c0a6_514d_fc6c4ef391ce["addHandler()"] 94cd3ed6_4fec_eddb_c90a_1c38249e5b02 -->|calls| 6d3095ae_d92b_c0a6_514d_fc6c4ef391ce fb22e4d8_3c91_63a7_ee9d_526d8df61c58["addProp()"] 94cd3ed6_4fec_eddb_c90a_1c38249e5b02 -->|calls| fb22e4d8_3c91_63a7_ee9d_526d8df61c58 51133883_ca33_6568_1819_239e506a3448["addAttr()"] 94cd3ed6_4fec_eddb_c90a_1c38249e5b02 -->|calls| 51133883_ca33_6568_1819_239e506a3448 8fd77f23_ee00_f1d1_782f_87be6944e85f["addDirective()"] 94cd3ed6_4fec_eddb_c90a_1c38249e5b02 -->|calls| 8fd77f23_ee00_f1d1_782f_87be6944e85f 3a79cd2e_18de_bdee_1bd2_a1afbad5bf50["checkForAliasModel()"] 94cd3ed6_4fec_eddb_c90a_1c38249e5b02 -->|calls| 3a79cd2e_18de_bdee_1bd2_a1afbad5bf50 dbffbbee_5e53_d952_4e1c_509b08e0b3e2["parseText()"] 94cd3ed6_4fec_eddb_c90a_1c38249e5b02 -->|calls| dbffbbee_5e53_d952_4e1c_509b08e0b3e2 style 94cd3ed6_4fec_eddb_c90a_1c38249e5b02 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
src/compiler/parser/index.ts lines 773–920
function processAttrs(el) {
const list = el.attrsList
let i, l, name, rawName, value, modifiers, syncGen, isDynamic
for (i = 0, l = list.length; i < l; i++) {
name = rawName = list[i].name
value = list[i].value
if (dirRE.test(name)) {
// mark element as dynamic
el.hasBindings = true
// modifiers
modifiers = parseModifiers(name.replace(dirRE, ''))
// support .foo shorthand syntax for the .prop modifier
if (process.env.VBIND_PROP_SHORTHAND && propBindRE.test(name)) {
;(modifiers || (modifiers = {})).prop = true
name = `.` + name.slice(1).replace(modifierRE, '')
} else if (modifiers) {
name = name.replace(modifierRE, '')
}
if (bindRE.test(name)) {
// v-bind
name = name.replace(bindRE, '')
value = parseFilters(value)
isDynamic = dynamicArgRE.test(name)
if (isDynamic) {
name = name.slice(1, -1)
}
if (__DEV__ && value.trim().length === 0) {
warn(
`The value for a v-bind expression cannot be empty. Found in "v-bind:${name}"`
)
}
if (modifiers) {
if (modifiers.prop && !isDynamic) {
name = camelize(name)
if (name === 'innerHtml') name = 'innerHTML'
}
if (modifiers.camel && !isDynamic) {
name = camelize(name)
}
if (modifiers.sync) {
syncGen = genAssignmentCode(value, `$event`)
if (!isDynamic) {
addHandler(
el,
`update:${camelize(name)}`,
syncGen,
null,
false,
warn,
list[i]
)
if (hyphenate(name) !== camelize(name)) {
addHandler(
el,
`update:${hyphenate(name)}`,
syncGen,
null,
false,
warn,
list[i]
)
}
} else {
// handler w/ dynamic event name
addHandler(
el,
`"update:"+(${name})`,
syncGen,
null,
false,
warn,
list[i],
true // dynamic
)
}
}
}
if (
(modifiers && modifiers.prop) ||
(!el.component && platformMustUseProp(el.tag, el.attrsMap.type, name))
) {
Domain
Subdomains
Defined In
Calls
Called By
Source
Frequently Asked Questions
What does processAttrs() do?
processAttrs() is a function in the vue codebase, defined in src/compiler/parser/index.ts.
Where is processAttrs() defined?
processAttrs() is defined in src/compiler/parser/index.ts at line 773.
What does processAttrs() call?
processAttrs() calls 9 function(s): addAttr, addDirective, addHandler, addProp, checkForAliasModel, genAssignmentCode, parseFilters, parseModifiers, and 1 more.
What calls processAttrs()?
processAttrs() is called by 1 function(s): processElement.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free