Mithril redraw()

redraw()

描述

当数据层的数据改变时,更新 DOM。

在视图中的事件处理函数中、或者是 m.request/m.jsonp 请求完成后不需要调用该方法。

setTimeoutsetIntervalrequestAnimationFrame 的回调中,或者第三方库的回调中,需要调用该方法。

通常 m.redraw() 会触发异步重绘,但是如果 Mithril 检测到使用同步重绘可以提高性能的话,则会使用同步重绘(例如,在最后一个动画帧中没有重绘,则会进行一次同步重绘)。你在编写代码时,应该始终把它当成是异步重绘的。

签名

m.redraw()
参数 类型 是否必须 描述
返回 没有返回

工作原理

当 Mithril 外部的回调运行时,你需要通知 Mithril 的渲染引擎需要重绘了。外部回调可以是 setTimeout/setInterval/requestAnimationFrame,web socket 库的回调,jQuery 插件中的事件回调,第三方 XHR 请求的回调等。

要触发重绘,调用 m.redraw() 即可。注意 m.redraw() 只有在使用 m.mountm.route 时才有效。如果你是通过 m.render 进行渲染的,则需要使用 m.render 进行重绘。

不要在生命周期方法中调用 m.redraw()。那样做会导致未知的后果。