mirror of https://github.com/vuejs/vue.git
transition: onEnter -> enter, onLeave -> leave, onAppear -> appear (ref #3172)
This commit is contained in:
parent
7827593972
commit
5882a0e3b5
|
|
@ -51,17 +51,16 @@ export function enter (vnode: VNodeWithData) {
|
||||||
|
|
||||||
const {
|
const {
|
||||||
css,
|
css,
|
||||||
appear,
|
|
||||||
enterClass,
|
enterClass,
|
||||||
enterActiveClass,
|
enterActiveClass,
|
||||||
appearClass,
|
appearClass,
|
||||||
appearActiveClass,
|
appearActiveClass,
|
||||||
beforeEnter,
|
beforeEnter,
|
||||||
onEnter,
|
enter,
|
||||||
afterEnter,
|
afterEnter,
|
||||||
enterCancelled,
|
enterCancelled,
|
||||||
beforeAppear,
|
beforeAppear,
|
||||||
onAppear,
|
appear,
|
||||||
afterAppear,
|
afterAppear,
|
||||||
appearCancelled
|
appearCancelled
|
||||||
} = resolveTransition(data, vnode.context)
|
} = resolveTransition(data, vnode.context)
|
||||||
|
|
@ -74,7 +73,7 @@ export function enter (vnode: VNodeWithData) {
|
||||||
const startClass = isAppear ? appearClass : enterClass
|
const startClass = isAppear ? appearClass : enterClass
|
||||||
const activeClass = isAppear ? appearActiveClass : enterActiveClass
|
const activeClass = isAppear ? appearActiveClass : enterActiveClass
|
||||||
const beforeEnterHook = isAppear ? (beforeAppear || beforeEnter) : beforeEnter
|
const beforeEnterHook = isAppear ? (beforeAppear || beforeEnter) : beforeEnter
|
||||||
const enterHook = isAppear ? (onAppear || onEnter) : onEnter
|
const enterHook = isAppear ? (typeof appear === 'function' ? appear : enter) : enter
|
||||||
const afterEnterHook = isAppear ? (afterAppear || afterEnter) : afterEnter
|
const afterEnterHook = isAppear ? (afterAppear || afterEnter) : afterEnter
|
||||||
const enterCancelledHook = isAppear ? (appearCancelled || enterCancelled) : enterCancelled
|
const enterCancelledHook = isAppear ? (appearCancelled || enterCancelled) : enterCancelled
|
||||||
|
|
||||||
|
|
@ -130,14 +129,14 @@ export function leave (vnode: VNodeWithData, rm: Function) {
|
||||||
leaveClass,
|
leaveClass,
|
||||||
leaveActiveClass,
|
leaveActiveClass,
|
||||||
beforeLeave,
|
beforeLeave,
|
||||||
onLeave,
|
leave,
|
||||||
afterLeave,
|
afterLeave,
|
||||||
leaveCancelled,
|
leaveCancelled,
|
||||||
delayLeave
|
delayLeave
|
||||||
} = resolveTransition(data, vnode.context)
|
} = resolveTransition(data, vnode.context)
|
||||||
|
|
||||||
const expectsCSS = css !== false
|
const expectsCSS = css !== false
|
||||||
const userWantsControl = onLeave && onLeave.length > 2
|
const userWantsControl = leave && leave.length > 2
|
||||||
const cb = el._leaveCb = once(() => {
|
const cb = el._leaveCb = once(() => {
|
||||||
if (expectsCSS) {
|
if (expectsCSS) {
|
||||||
removeTransitionClass(el, leaveActiveClass)
|
removeTransitionClass(el, leaveActiveClass)
|
||||||
|
|
@ -172,7 +171,7 @@ export function leave (vnode: VNodeWithData, rm: Function) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
onLeave && onLeave(el, vm, cb)
|
leave && leave(el, vm, cb)
|
||||||
if (!expectsCSS && !userWantsControl) {
|
if (!expectsCSS && !userWantsControl) {
|
||||||
cb()
|
cb()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -126,8 +126,8 @@ if (!isIE9) {
|
||||||
})
|
})
|
||||||
|
|
||||||
it('inline transition object', done => {
|
it('inline transition object', done => {
|
||||||
const onEnter = jasmine.createSpy('enter')
|
const enter = jasmine.createSpy('enter')
|
||||||
const onLeave = jasmine.createSpy('leave')
|
const leave = jasmine.createSpy('leave')
|
||||||
const vm = new Vue({
|
const vm = new Vue({
|
||||||
template: `<div><div v-if="ok" class="test" :transition="{
|
template: `<div><div v-if="ok" class="test" :transition="{
|
||||||
name: 'inline',
|
name: 'inline',
|
||||||
|
|
@ -139,8 +139,8 @@ if (!isIE9) {
|
||||||
data: { ok: true },
|
data: { ok: true },
|
||||||
transitions: {
|
transitions: {
|
||||||
inline: {
|
inline: {
|
||||||
onEnter,
|
enter,
|
||||||
onLeave
|
leave
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}).$mount(el)
|
}).$mount(el)
|
||||||
|
|
@ -150,7 +150,7 @@ if (!isIE9) {
|
||||||
vm.ok = false
|
vm.ok = false
|
||||||
waitForUpdate(() => {
|
waitForUpdate(() => {
|
||||||
expect(vm.$el.children[0].className).toBe('test bye byebye active')
|
expect(vm.$el.children[0].className).toBe('test bye byebye active')
|
||||||
expect(onLeave).toHaveBeenCalled()
|
expect(leave).toHaveBeenCalled()
|
||||||
}).thenWaitFor(nextFrame).then(() => {
|
}).thenWaitFor(nextFrame).then(() => {
|
||||||
expect(vm.$el.children[0].className).toBe('test byebye active')
|
expect(vm.$el.children[0].className).toBe('test byebye active')
|
||||||
}).thenWaitFor(duration + 10).then(() => {
|
}).thenWaitFor(duration + 10).then(() => {
|
||||||
|
|
@ -158,7 +158,7 @@ if (!isIE9) {
|
||||||
vm.ok = true
|
vm.ok = true
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
expect(vm.$el.children[0].className).toBe('test hello hello-active')
|
expect(vm.$el.children[0].className).toBe('test hello hello-active')
|
||||||
expect(onEnter).toHaveBeenCalled()
|
expect(enter).toHaveBeenCalled()
|
||||||
}).thenWaitFor(nextFrame).then(() => {
|
}).thenWaitFor(nextFrame).then(() => {
|
||||||
expect(vm.$el.children[0].className).toBe('test hello-active')
|
expect(vm.$el.children[0].className).toBe('test hello-active')
|
||||||
}).thenWaitFor(duration + 10).then(() => {
|
}).thenWaitFor(duration + 10).then(() => {
|
||||||
|
|
@ -167,8 +167,8 @@ if (!isIE9) {
|
||||||
})
|
})
|
||||||
|
|
||||||
it('transition with JavaScript hooks', done => {
|
it('transition with JavaScript hooks', done => {
|
||||||
const onLeaveSpy = jasmine.createSpy('onLeave')
|
const onLeaveSpy = jasmine.createSpy('leave')
|
||||||
const onEnterSpy = jasmine.createSpy('onEnter')
|
const onEnterSpy = jasmine.createSpy('enter')
|
||||||
const beforeLeaveSpy = jasmine.createSpy('beforeLeave')
|
const beforeLeaveSpy = jasmine.createSpy('beforeLeave')
|
||||||
const beforeEnterSpy = jasmine.createSpy('beforeEnter')
|
const beforeEnterSpy = jasmine.createSpy('beforeEnter')
|
||||||
const afterLeaveSpy = jasmine.createSpy('afterLeave')
|
const afterLeaveSpy = jasmine.createSpy('afterLeave')
|
||||||
|
|
@ -184,14 +184,14 @@ if (!isIE9) {
|
||||||
expect(el.className).toBe('test')
|
expect(el.className).toBe('test')
|
||||||
beforeLeaveSpy(el, vm)
|
beforeLeaveSpy(el, vm)
|
||||||
},
|
},
|
||||||
onLeave: (el, vm) => onLeaveSpy(el, vm),
|
leave: (el, vm) => onLeaveSpy(el, vm),
|
||||||
afterLeave: (el, vm) => afterLeaveSpy(el, vm),
|
afterLeave: (el, vm) => afterLeaveSpy(el, vm),
|
||||||
beforeEnter: (el, vm) => {
|
beforeEnter: (el, vm) => {
|
||||||
expect(vm.$el.contains(el)).toBe(false)
|
expect(vm.$el.contains(el)).toBe(false)
|
||||||
expect(el.className).toBe('test')
|
expect(el.className).toBe('test')
|
||||||
beforeEnterSpy(el, vm)
|
beforeEnterSpy(el, vm)
|
||||||
},
|
},
|
||||||
onEnter: (el, vm) => onEnterSpy(el, vm),
|
enter: (el, vm) => onEnterSpy(el, vm),
|
||||||
afterEnter: (el, vm) => afterEnterSpy(el, vm)
|
afterEnter: (el, vm) => afterEnterSpy(el, vm)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -234,10 +234,10 @@ if (!isIE9) {
|
||||||
data: { ok: true },
|
data: { ok: true },
|
||||||
transitions: {
|
transitions: {
|
||||||
test: {
|
test: {
|
||||||
onEnter: (el, vm, cb) => {
|
enter: (el, vm, cb) => {
|
||||||
next = cb
|
next = cb
|
||||||
},
|
},
|
||||||
onLeave: (el, vm, cb) => {
|
leave: (el, vm, cb) => {
|
||||||
next = cb
|
next = cb
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -276,8 +276,8 @@ if (!isIE9) {
|
||||||
transitions: {
|
transitions: {
|
||||||
test: {
|
test: {
|
||||||
css: false,
|
css: false,
|
||||||
onEnter: enterSpy,
|
enter: enterSpy,
|
||||||
onLeave: leaveSpy
|
leave: leaveSpy
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}).$mount(el)
|
}).$mount(el)
|
||||||
|
|
@ -301,8 +301,8 @@ if (!isIE9) {
|
||||||
data: { ok: true },
|
data: { ok: true },
|
||||||
transitions: {
|
transitions: {
|
||||||
nope: {
|
nope: {
|
||||||
onEnter: enterSpy,
|
enter: enterSpy,
|
||||||
onLeave: leaveSpy
|
leave: leaveSpy
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}).$mount(el)
|
}).$mount(el)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue