parse() — vue Function Reference
Architecture documentation for the parse() function in index.ts from the vue codebase.
Entity Profile
Dependency Diagram
graph TD 19a26691_f7c4_e2d6_e9ed_59c6aff144df["parse()"] 101d3d34_ac07_228f_62b9_5d5ac4a0ea2e["index.ts"] 19a26691_f7c4_e2d6_e9ed_59c6aff144df -->|defined in| 101d3d34_ac07_228f_62b9_5d5ac4a0ea2e 6c590cdd_9255_3485_21a0_c8a067eb1658["createCompiler()"] 6c590cdd_9255_3485_21a0_c8a067eb1658 -->|calls| 19a26691_f7c4_e2d6_e9ed_59c6aff144df 986757e2_2dff_4538_f36e_97457731ba01["pluckModuleFunction()"] 19a26691_f7c4_e2d6_e9ed_59c6aff144df -->|calls| 986757e2_2dff_4538_f36e_97457731ba01 08093d1f_a003_dbad_063e_2431482be94f["processElement()"] 19a26691_f7c4_e2d6_e9ed_59c6aff144df -->|calls| 08093d1f_a003_dbad_063e_2431482be94f b4c1389a_2c57_28d1_1826_0c31a4a17339["addIfCondition()"] 19a26691_f7c4_e2d6_e9ed_59c6aff144df -->|calls| b4c1389a_2c57_28d1_1826_0c31a4a17339 c884999e_bd3e_83b2_f046_49d3a385e621["processIfConditions()"] 19a26691_f7c4_e2d6_e9ed_59c6aff144df -->|calls| c884999e_bd3e_83b2_f046_49d3a385e621 62dcc405_082c_cdd0_ae44_f0d60c4be8d0["parseHTML()"] 19a26691_f7c4_e2d6_e9ed_59c6aff144df -->|calls| 62dcc405_082c_cdd0_ae44_f0d60c4be8d0 20f42bb7_c852_11fa_9570_fb0e47784169["guardIESVGBug()"] 19a26691_f7c4_e2d6_e9ed_59c6aff144df -->|calls| 20f42bb7_c852_11fa_9570_fb0e47784169 4e75c3e7_0ca3_e8e1_4b44_838fc9982387["createASTElement()"] 19a26691_f7c4_e2d6_e9ed_59c6aff144df -->|calls| 4e75c3e7_0ca3_e8e1_4b44_838fc9982387 46684b01_04df_617a_eec6_14b9b59b5876["isForbiddenTag()"] 19a26691_f7c4_e2d6_e9ed_59c6aff144df -->|calls| 46684b01_04df_617a_eec6_14b9b59b5876 53767308_b194_e579_1c0e_f731eeedd2ec["processPre()"] 19a26691_f7c4_e2d6_e9ed_59c6aff144df -->|calls| 53767308_b194_e579_1c0e_f731eeedd2ec 45053ba1_50a8_ccf4_7065_ac9531d561d9["processRawAttrs()"] 19a26691_f7c4_e2d6_e9ed_59c6aff144df -->|calls| 45053ba1_50a8_ccf4_7065_ac9531d561d9 d3b1b678_5e48_ff0d_a441_c2c615c22920["processFor()"] 19a26691_f7c4_e2d6_e9ed_59c6aff144df -->|calls| d3b1b678_5e48_ff0d_a441_c2c615c22920 bb1c0225_c589_5526_ef8c_1c9daa8f8ccd["processIf()"] 19a26691_f7c4_e2d6_e9ed_59c6aff144df -->|calls| bb1c0225_c589_5526_ef8c_1c9daa8f8ccd style 19a26691_f7c4_e2d6_e9ed_59c6aff144df fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
src/compiler/parser/index.ts lines 86–422
export function parse(template: string, options: CompilerOptions): ASTElement {
warn = options.warn || baseWarn
platformIsPreTag = options.isPreTag || no
platformMustUseProp = options.mustUseProp || no
platformGetTagNamespace = options.getTagNamespace || no
const isReservedTag = options.isReservedTag || no
maybeComponent = (el: ASTElement) =>
!!(
el.component ||
el.attrsMap[':is'] ||
el.attrsMap['v-bind:is'] ||
!(el.attrsMap.is ? isReservedTag(el.attrsMap.is) : isReservedTag(el.tag))
)
transforms = pluckModuleFunction(options.modules, 'transformNode')
preTransforms = pluckModuleFunction(options.modules, 'preTransformNode')
postTransforms = pluckModuleFunction(options.modules, 'postTransformNode')
delimiters = options.delimiters
const stack: any[] = []
const preserveWhitespace = options.preserveWhitespace !== false
const whitespaceOption = options.whitespace
let root
let currentParent
let inVPre = false
let inPre = false
let warned = false
function warnOnce(msg, range) {
if (!warned) {
warned = true
warn(msg, range)
}
}
function closeElement(element) {
trimEndingWhitespace(element)
if (!inVPre && !element.processed) {
element = processElement(element, options)
}
// tree management
if (!stack.length && element !== root) {
// allow root elements with v-if, v-else-if and v-else
if (root.if && (element.elseif || element.else)) {
if (__DEV__) {
checkRootConstraints(element)
}
addIfCondition(root, {
exp: element.elseif,
block: element
})
} else if (__DEV__) {
warnOnce(
`Component template should contain exactly one root element. ` +
`If you are using v-if on multiple elements, ` +
`use v-else-if to chain them instead.`,
{ start: element.start }
)
}
}
if (currentParent && !element.forbidden) {
if (element.elseif || element.else) {
processIfConditions(element, currentParent)
} else {
if (element.slotScope) {
// scoped slot
// keep it in the children list so that v-else(-if) conditions can
// find it as the prev node.
const name = element.slotTarget || '"default"'
;(currentParent.scopedSlots || (currentParent.scopedSlots = {}))[
name
] = element
}
currentParent.children.push(element)
element.parent = currentParent
}
}
// final children cleanup
// filter out scoped slots
Domain
Subdomains
Defined In
Calls
Called By
Source
Frequently Asked Questions
What does parse() do?
parse() is a function in the vue codebase, defined in src/compiler/parser/index.ts.
Where is parse() defined?
parse() is defined in src/compiler/parser/index.ts at line 86.
What does parse() call?
parse() calls 15 function(s): addIfCondition, createASTElement, guardIESVGBug, isForbiddenTag, isTextTag, parseHTML, parseText, pluckModuleFunction, and 7 more.
What calls parse()?
parse() is called by 1 function(s): createCompiler.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free