mirror of
https://github.com/wanglin2/mind-map.git
synced 2026-02-21 10:27:44 +08:00
Feat:优化reRender方法
This commit is contained in:
parent
0ec16bd136
commit
42ffbd728c
@ -168,12 +168,10 @@ class MindMap {
|
||||
|
||||
// 重新渲染
|
||||
reRender(callback, source = '') {
|
||||
this.clearDraw() // 清空画布的操作不能放到队列任务里,否则当reRender后又执行了render,当前回调会被覆盖掉
|
||||
this.batchExecution.push('render', () => {
|
||||
this.initTheme()
|
||||
this.renderer.reRender = true
|
||||
this.renderer.render(callback, source)
|
||||
})
|
||||
this.renderer.reRender = true // 标记为重新渲染
|
||||
this.renderer.clearCache() // 清空节点缓存池
|
||||
this.clearDraw() // 清空画布
|
||||
this.render(callback, (source = ''))
|
||||
}
|
||||
|
||||
// 获取或更新容器尺寸位置信息
|
||||
|
||||
@ -387,6 +387,13 @@ class Render {
|
||||
this.mindMap.keyCommand.restore()
|
||||
}
|
||||
|
||||
// 清空节点缓存池
|
||||
clearCache() {
|
||||
this.layout.lru.clear()
|
||||
this.nodeCache = {}
|
||||
this.lastNodeCache = {}
|
||||
}
|
||||
|
||||
// 渲染
|
||||
render(callback = () => {}, source) {
|
||||
// 如果当前还没有渲染完毕,不再触发渲染
|
||||
@ -431,7 +438,9 @@ class Render {
|
||||
this.waitRenderingParams = []
|
||||
this.render(...params)
|
||||
} else {
|
||||
if (this.reRender) this.reRender = false
|
||||
if (this.reRender) {
|
||||
this.reRender = false
|
||||
}
|
||||
// 触发一次保存,因为修改了渲染树的数据
|
||||
if (
|
||||
this.mindMap.richText &&
|
||||
|
||||
@ -35,4 +35,9 @@ export default class Lru {
|
||||
return this.pool.get(key)
|
||||
}
|
||||
}
|
||||
|
||||
clear() {
|
||||
this.size = 0
|
||||
this.pool = new Map()
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user