File tree Expand file tree Collapse file tree 2 files changed +36
-5
lines changed
src/platforms/web/runtime/modules
test/unit/features/transition Expand file tree Collapse file tree 2 files changed +36
-5
lines changed Original file line number Diff line number Diff line change @@ -42,17 +42,15 @@ export function enter (vnode: VNodeWithData) {
42
42
el . _leaveCb . cancelled = true
43
43
el . _leaveCb ( )
44
44
}
45
+
45
46
const data = vnode . data . transition
46
47
if ( ! data ) {
47
48
return
48
49
}
49
- const isAppear = ! vnode . context . $root . _isMounted
50
- if ( isAppear && ! data . appear && data . appear !== '' ) {
51
- return
52
- }
53
50
54
51
const {
55
52
css,
53
+ appear,
56
54
enterClass,
57
55
enterActiveClass,
58
56
appearClass,
@@ -67,6 +65,11 @@ export function enter (vnode: VNodeWithData) {
67
65
appearCancelled
68
66
} = resolveTransition ( data , vnode . context )
69
67
68
+ const isAppear = ! vnode . context . $root . _isMounted
69
+ if ( isAppear && ! appear && appear !== '' ) {
70
+ return
71
+ }
72
+
70
73
const startClass = isAppear ? appearClass : enterClass
71
74
const activeClass = isAppear ? appearActiveClass : enterActiveClass
72
75
const beforeEnterHook = isAppear ? ( beforeAppear || beforeEnter ) : beforeEnter
Original file line number Diff line number Diff line change @@ -426,7 +426,7 @@ if (!isIE9) {
426
426
} ) . then ( done )
427
427
} )
428
428
429
- it ( 'transition on appear' , done => {
429
+ it ( 'transition on appear (inline) ' , done => {
430
430
const vm = new Vue ( {
431
431
template : `
432
432
<div>
@@ -452,6 +452,34 @@ if (!isIE9) {
452
452
} ) . then ( done )
453
453
} )
454
454
455
+ it ( 'transition on appear (resolved)' , done => {
456
+ const vm = new Vue ( {
457
+ template : `
458
+ <div>
459
+ <div v-if="ok"
460
+ class="test"
461
+ transition="test">foo</div>
462
+ </div>
463
+ ` ,
464
+ data : { ok : true } ,
465
+ transitions : {
466
+ test : {
467
+ appear : true ,
468
+ appearClass : 'test-appear' ,
469
+ appearActiveClass : 'test-appear-active'
470
+ }
471
+ }
472
+ } ) . $mount ( el )
473
+
474
+ waitForUpdate ( ( ) => {
475
+ expect ( vm . $el . children [ 0 ] . className ) . toBe ( 'test test-appear test-appear-active' )
476
+ } ) . thenWaitFor ( nextFrame ) . then ( ( ) => {
477
+ expect ( vm . $el . children [ 0 ] . className ) . toBe ( 'test test-appear-active' )
478
+ } ) . thenWaitFor ( duration + 10 ) . then ( ( ) => {
479
+ expect ( vm . $el . children [ 0 ] . className ) . toBe ( 'test' )
480
+ } ) . then ( done )
481
+ } )
482
+
455
483
it ( 'transition on appear with v-show' , done => {
456
484
const vm = new Vue ( {
457
485
template : `
You can’t perform that action at this time.
0 commit comments