Merge pull request #28 from feross/main-loop
Batch virtual-dom changes (fix #27)
This commit is contained in:
@@ -6,6 +6,7 @@ var createTorrent = require('create-torrent')
|
||||
var dragDrop = require('drag-drop')
|
||||
var electron = require('electron')
|
||||
var EventEmitter = require('events')
|
||||
var mainLoop = require('main-loop')
|
||||
var networkAddress = require('network-address')
|
||||
var path = require('path')
|
||||
var throttle = require('throttleit')
|
||||
@@ -57,7 +58,7 @@ var state = global.state = {
|
||||
}
|
||||
}
|
||||
|
||||
var client, currentVDom, rootElement, updateThrottled
|
||||
var client, vdomLoop, updateThrottled
|
||||
|
||||
function init () {
|
||||
client = global.client = new WebTorrent()
|
||||
@@ -65,9 +66,12 @@ function init () {
|
||||
client.on('error', onError)
|
||||
state.view.client = client
|
||||
|
||||
currentVDom = App(state, dispatch)
|
||||
rootElement = createElement(currentVDom)
|
||||
document.body.appendChild(rootElement)
|
||||
vdomLoop = mainLoop(state, render, {
|
||||
create: createElement,
|
||||
diff: diff,
|
||||
patch: patch
|
||||
})
|
||||
document.body.appendChild(vdomLoop.target)
|
||||
|
||||
updateThrottled = throttle(update, 1000)
|
||||
|
||||
@@ -108,12 +112,12 @@ function init () {
|
||||
}
|
||||
init()
|
||||
|
||||
function update () {
|
||||
var newVDom = App(state, dispatch)
|
||||
var patches = diff(currentVDom, newVDom)
|
||||
rootElement = patch(rootElement, patches)
|
||||
currentVDom = newVDom
|
||||
function render (state) {
|
||||
return App(state, dispatch)
|
||||
}
|
||||
|
||||
function update () {
|
||||
vdomLoop.update(state)
|
||||
updateDockIcon()
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user