MCPcopy Index your code
hub / github.com/ygs-code/vue / removeAndInvokeRemoveHook

Function removeAndInvokeRemoveHook

vue.js:8484–8511  ·  view source on GitHub ↗
(vnode, rm)

Source from the content-addressed store, hash-verified

8482 }
8483
8484 function removeAndInvokeRemoveHook(vnode, rm) {
8485 if (isDef(rm) || isDef(vnode.data)) {
8486 var i;
8487 var listeners = cbs.remove.length + 1;
8488 if (isDef(rm)) {
8489 // we have a recursively passed down rm callback
8490 // increase the listeners count
8491 rm.listeners += listeners;
8492 } else {
8493 // directly removing
8494 rm = createRmCb(vnode.elm, listeners);
8495 }
8496 // recursively invoke hooks on child component root node
8497 if (isDef(i = vnode.componentInstance) && isDef(i = i._vnode) && isDef(i.data)) {
8498 removeAndInvokeRemoveHook(i, rm);
8499 }
8500 for (i = 0; i < cbs.remove.length; ++i) {
8501 cbs.remove[i](vnode, rm);
8502 }
8503 if (isDef(i = vnode.data.hook) && isDef(i = i.remove)) {
8504 i(vnode, rm);
8505 } else {
8506 rm();
8507 }
8508 } else {
8509 removeNode(vnode.elm);
8510 }
8511 }
8512
8513
8514 // ddif 算法

Callers 1

removeVnodesFunction · 0.85

Calls 3

isDefFunction · 0.85
createRmCbFunction · 0.85
removeNodeFunction · 0.85

Tested by

no test coverage detected