registerRef() — vue Function Reference
Architecture documentation for the registerRef() function in template-ref.ts from the vue codebase.
Entity Profile
Dependency Diagram
graph TD ac2a5d8a_d8a3_117c_7f0d_cb9b1b084b59["registerRef()"] b4d64c20_18f0_552d_559e_065753ef82cd["template-ref.ts"] ac2a5d8a_d8a3_117c_7f0d_cb9b1b084b59 -->|defined in| b4d64c20_18f0_552d_559e_065753ef82cd 96636df1_37c6_dc2e_bf2c_a64a96ddbccd["default.create()"] 96636df1_37c6_dc2e_bf2c_a64a96ddbccd -->|calls| ac2a5d8a_d8a3_117c_7f0d_cb9b1b084b59 a2266565_ff6e_f9ab_d2b2_cbd64274e87d["default.update()"] a2266565_ff6e_f9ab_d2b2_cbd64274e87d -->|calls| ac2a5d8a_d8a3_117c_7f0d_cb9b1b084b59 564f6776_a8fd_727a_c751_36ad1c8b163f["default.destroy()"] 564f6776_a8fd_727a_c751_36ad1c8b163f -->|calls| ac2a5d8a_d8a3_117c_7f0d_cb9b1b084b59 dca56857_b66b_81ec_c7d3_4029eaf84e02["createPatchFunction()"] dca56857_b66b_81ec_c7d3_4029eaf84e02 -->|calls| ac2a5d8a_d8a3_117c_7f0d_cb9b1b084b59 cdcc213a_2ba1_85c3_7cad_6a7e10bf0c78["setSetupRef()"] ac2a5d8a_d8a3_117c_7f0d_cb9b1b084b59 -->|calls| cdcc213a_2ba1_85c3_7cad_6a7e10bf0c78 style ac2a5d8a_d8a3_117c_7f0d_cb9b1b084b59 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
src/core/vdom/modules/template-ref.ts lines 29–80
export function registerRef(vnode: VNodeWithData, isRemoval?: boolean) {
const ref = vnode.data.ref
if (!isDef(ref)) return
const vm = vnode.context
const refValue = vnode.componentInstance || vnode.elm
const value = isRemoval ? null : refValue
const $refsValue = isRemoval ? undefined : refValue
if (isFunction(ref)) {
invokeWithErrorHandling(ref, vm, [value], vm, `template ref function`)
return
}
const isFor = vnode.data.refInFor
const _isString = typeof ref === 'string' || typeof ref === 'number'
const _isRef = isRef(ref)
const refs = vm.$refs
if (_isString || _isRef) {
if (isFor) {
const existing = _isString ? refs[ref] : ref.value
if (isRemoval) {
isArray(existing) && remove(existing, refValue)
} else {
if (!isArray(existing)) {
if (_isString) {
refs[ref] = [refValue]
setSetupRef(vm, ref, refs[ref])
} else {
ref.value = [refValue]
}
} else if (!existing.includes(refValue)) {
existing.push(refValue)
}
}
} else if (_isString) {
if (isRemoval && refs[ref] !== refValue) {
return
}
refs[ref] = $refsValue
setSetupRef(vm, ref, value)
} else if (_isRef) {
if (isRemoval && ref.value !== refValue) {
return
}
ref.value = value
} else if (__DEV__) {
warn(`Invalid template ref type: ${typeof ref}`)
}
}
}
Domain
Subdomains
Defined In
Calls
Source
Frequently Asked Questions
What does registerRef() do?
registerRef() is a function in the vue codebase, defined in src/core/vdom/modules/template-ref.ts.
Where is registerRef() defined?
registerRef() is defined in src/core/vdom/modules/template-ref.ts at line 29.
What does registerRef() call?
registerRef() calls 1 function(s): setSetupRef.
What calls registerRef()?
registerRef() is called by 4 function(s): createPatchFunction, default.create, default.destroy, default.update.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free