Skip to content

Commit 3209f6f

Browse files
committed
remove parent/ref elm references when destroying instance, fix memory leak (fix vue-router#1279)
1 parent be07617 commit 3209f6f

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

src/core/instance/lifecycle.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,15 +119,18 @@ export function lifecycleMixin (Vue: Class<Component>) {
119119
}
120120
// call the last hook...
121121
vm._isDestroyed = true
122+
// invoke destroy hooks on current rendered tree
123+
vm.__patch__(vm._vnode, null)
124+
// fire destroyed hook
122125
callHook(vm, 'destroyed')
123126
// turn off all instance listeners.
124127
vm.$off()
125128
// remove __vue__ reference
126129
if (vm.$el) {
127130
vm.$el.__vue__ = null
128131
}
129-
// invoke destroy hooks on current rendered tree
130-
vm.__patch__(vm._vnode, null)
132+
// remove reference to DOM nodes (prevents leak)
133+
vm.$options._parentElm = vm.$options._refElm = null
131134
}
132135
}
133136

0 commit comments

Comments
 (0)