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

Function performLeave

vue.js:11434–11470  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

11432 }
11433
11434 function performLeave() {
11435 // the delayed leave may have already been cancelled
11436 if (cb.cancelled) { //取消过度动画标志
11437 return
11438 }
11439 // record leaving element
11440 if (!vnode.data.show) {
11441 (el.parentNode._pending || (el.parentNode._pending = {}))[(vnode.key)] = vnode;
11442 }
11443 beforeLeave && beforeLeave(el); //离开动画的钩子函数
11444 if (expectsCSS) {
11445 addTransitionClass(el, leaveClass);// 为真实dom添加 css 过度动画leaveClass类
11446 addTransitionClass(el, leaveActiveClass);//激活离开动画的css 动画过度类
11447 nextFrame(function () {
11448 removeTransitionClass(el, leaveClass);// 为真实dom删除 css 过度动画leaveClass类
11449 if (!cb.cancelled) { //取消过度动画标志
11450 addTransitionClass(el, leaveToClass); //离开动画的css 动画过度类
11451 if (!userWantsControl) {
11452 if (isValidDuration(explicitLeaveDuration)) { //如果是数字
11453 setTimeout(cb, explicitLeaveDuration); //执行回调函数 _leaveCb
11454 } else {
11455 // 获取动画的信息,执行动画。
11456 whenTransitionEnds(
11457 el, //真实的dom
11458 type, //动画类型
11459 cb//执行回调函数 _leaveCb
11460 ); //
11461 }
11462 }
11463 }
11464 });
11465 }
11466 leave && leave(el, cb);
11467 if (!expectsCSS && !userWantsControl) {
11468 cb();
11469 }
11470 }
11471 }
11472
11473 // only used in dev mode

Callers 1

leaveFunction · 0.85

Calls 6

addTransitionClassFunction · 0.85
nextFrameFunction · 0.85
removeTransitionClassFunction · 0.85
isValidDurationFunction · 0.85
whenTransitionEndsFunction · 0.85
leaveFunction · 0.85

Tested by

no test coverage detected