![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/dceprojects.corals.io/node_modules/vue/src/core/vdom/modules/ |
/* @flow */ import { remove, isDef } from 'shared/util' export default { create (_: any, vnode: VNodeWithData) { registerRef(vnode) }, update (oldVnode: VNodeWithData, vnode: VNodeWithData) { if (oldVnode.data.ref !== vnode.data.ref) { registerRef(oldVnode, true) registerRef(vnode) } }, destroy (vnode: VNodeWithData) { registerRef(vnode, true) } } export function registerRef (vnode: VNodeWithData, isRemoval: ?boolean) { const key = vnode.data.ref if (!isDef(key)) return const vm = vnode.context const ref = vnode.componentInstance || vnode.elm const refs = vm.$refs if (isRemoval) { if (Array.isArray(refs[key])) { remove(refs[key], ref) } else if (refs[key] === ref) { refs[key] = undefined } } else { if (vnode.data.refInFor) { if (!Array.isArray(refs[key])) { refs[key] = [ref] } else if (refs[key].indexOf(ref) < 0) { // $flow-disable-line refs[key].push(ref) } } else { refs[key] = ref } } }