Evan You 9 лет назад
Родитель
Сommit
3661b4e78e
3 измененных файлов с 4 добавлено и 0 удалено
  1. 1 0
      flow/component.js
  2. 1 0
      src/core/instance/lifecycle.js
  3. 2 0
      src/core/vdom/create-component.js

+ 1 - 0
flow/component.js

@@ -55,6 +55,7 @@ declare interface Component {
   _watchers: Array<Watcher>;
   _data: Object;
   _events: Object;
+  _inactive: boolean;
   _isMounted: boolean;
   _isDestroyed: boolean;
   _isBeingDestroyed: boolean;

+ 1 - 0
src/core/instance/lifecycle.js

@@ -18,6 +18,7 @@ export function initLifecycle (vm: Component) {
   vm.$refs = {}
 
   vm._watcher = null
+  vm._inactive = false
   vm._isMounted = false
   vm._isDestroyed = false
   vm._isBeingDestroyed = false

+ 2 - 0
src/core/vdom/create-component.js

@@ -146,6 +146,7 @@ function insert (vnode: MountedComponentVNode) {
     callHook(vnode.child, 'mounted')
   }
   if (vnode.data.keepAlive) {
+    vnode.child._inactive = false
     callHook(vnode.child, 'activated')
   }
 }
@@ -155,6 +156,7 @@ function destroy (vnode: MountedComponentVNode) {
     if (!vnode.data.keepAlive) {
       vnode.child.$destroy()
     } else {
+      vnode.child._inactive = true
       callHook(vnode.child, 'deactivated')
     }
   }