Merge pull request #1247 from pygy/cleanup-on-unmount
Better cleanup when unmounting
This commit is contained in:
commit
f67f1efd71
1 changed files with 6 additions and 7 deletions
13
api/mount.js
13
api/mount.js
|
|
@ -2,24 +2,23 @@
|
||||||
|
|
||||||
var Vnode = require("../render/vnode")
|
var Vnode = require("../render/vnode")
|
||||||
var autoredraw = require("../api/autoredraw")
|
var autoredraw = require("../api/autoredraw")
|
||||||
var dummy = {view: function() {}}
|
|
||||||
|
|
||||||
module.exports = function(renderer, pubsub) {
|
module.exports = function(renderer, pubsub) {
|
||||||
return function(root, component) {
|
return function(root, component) {
|
||||||
pubsub.unsubscribe(root.redraw)
|
pubsub.unsubscribe(root.redraw)
|
||||||
|
if (component === null) {
|
||||||
|
renderer.render(root, [])
|
||||||
|
delete root.redraw
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
var run = autoredraw(root, renderer, pubsub, function() {
|
var run = autoredraw(root, renderer, pubsub, function() {
|
||||||
renderer.render(
|
renderer.render(
|
||||||
root,
|
root,
|
||||||
Vnode(component === null ? dummy : component, undefined, undefined, undefined, undefined, undefined)
|
Vnode(component, undefined, undefined, undefined, undefined, undefined)
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
run()
|
run()
|
||||||
|
|
||||||
if (component === null) {
|
|
||||||
pubsub.unsubscribe(root.redraw)
|
|
||||||
delete root.redraw
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue