|
|
@@ -347,6 +347,9 @@ describe('Component keep-alive', () => {
|
|
|
assertHookCalls(one, [1, 1, 1, 1, 0])
|
|
|
assertHookCalls(two, [1, 1, 1, 0, 0])
|
|
|
vm.include = 'two'
|
|
|
+ }).then(() => {
|
|
|
+ assertHookCalls(one, [1, 1, 1, 1, 1])
|
|
|
+ assertHookCalls(two, [1, 1, 1, 0, 0])
|
|
|
vm.view = 'one'
|
|
|
}).then(() => {
|
|
|
assertHookCalls(one, [2, 2, 1, 1, 1])
|
|
|
@@ -354,6 +357,33 @@ describe('Component keep-alive', () => {
|
|
|
}).then(done)
|
|
|
})
|
|
|
|
|
|
+ it('should not prune currently active instance', done => {
|
|
|
+ const vm = new Vue({
|
|
|
+ template: `
|
|
|
+ <div>
|
|
|
+ <keep-alive :include="include">
|
|
|
+ <component :is="view"></component>
|
|
|
+ </keep-alive>
|
|
|
+ </div>
|
|
|
+ `,
|
|
|
+ data: {
|
|
|
+ view: 'one',
|
|
|
+ include: 'one,two'
|
|
|
+ },
|
|
|
+ components
|
|
|
+ }).$mount()
|
|
|
+
|
|
|
+ vm.include = 'two'
|
|
|
+ waitForUpdate(() => {
|
|
|
+ assertHookCalls(one, [1, 1, 1, 0, 0])
|
|
|
+ assertHookCalls(two, [0, 0, 0, 0, 0])
|
|
|
+ vm.view = 'two'
|
|
|
+ }).then(() => {
|
|
|
+ assertHookCalls(one, [1, 1, 1, 0, 1])
|
|
|
+ assertHookCalls(two, [1, 1, 1, 0, 0])
|
|
|
+ }).then(done)
|
|
|
+ })
|
|
|
+
|
|
|
// #3882
|
|
|
it('deeply nested keep-alive should be destroyed properly', done => {
|
|
|
one.template = `<div><keep-alive><two></two></keep-alive></div>`
|