transition: onEnter -> enter, onLeave -> leave, onAppear -> appear (ref #3172)

This commit is contained in:
Evan You 2016-06-29 21:37:31 -04:00
parent 7827593972
commit 5882a0e3b5
2 changed files with 22 additions and 23 deletions

View File

@ -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()
} }

View File

@ -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)