(vnode)
| 8450 | |
| 8451 | //组件销毁,触发销毁钩子函数 |
| 8452 | function invokeDestroyHook(vnode) { |
| 8453 | var i, j; |
| 8454 | var data = vnode.data; //如果vonde有标签属性 |
| 8455 | if (isDef(data)) { //如果vonde有标签属性 |
| 8456 | if (isDef(i = data.hook) && isDef(i = i.destroy)) { //如果有钩子函数,或者销毁的钩子函数destroy 就调用destroy或者钩子函数 |
| 8457 | i(vnode); |
| 8458 | } |
| 8459 | for (i = 0; i < cbs.destroy.length; ++i) { //并且判断有几个销毁的钩子函数,循环调用 |
| 8460 | cbs.destroy[i](vnode); // |
| 8461 | } |
| 8462 | } |
| 8463 | if (isDef(i = vnode.children)) { //如果有子节点则递归 |
| 8464 | for (j = 0; j < vnode.children.length; ++j) { |
| 8465 | invokeDestroyHook(vnode.children[j]); |
| 8466 | } |
| 8467 | } |
| 8468 | } |
| 8469 | |
| 8470 | function removeVnodes(parentElm, vnodes, startIdx, endIdx) { |
| 8471 | for (; startIdx <= endIdx; ++startIdx) { |
no test coverage detected