35 lines
No EOL
1.3 KiB
Markdown
35 lines
No EOL
1.3 KiB
Markdown
# redraw()
|
|
|
|
- [Description](#description)
|
|
- [Signature](#signature)
|
|
- [How it works](#how-it-works)
|
|
|
|
---
|
|
|
|
### Description
|
|
|
|
Updates the DOM after a change in the application data layer.
|
|
|
|
You DON'T need to call it if data is modified within the execution context of an event handler defined in a Mithril view, or after request completion when using `m.request`/`m.jsonp`.
|
|
|
|
You DO need to call it in `setTimeout`/`setInterval`/`requestAnimationFrame` callbacks, or callbacks from 3rd party libraries.
|
|
|
|
---
|
|
|
|
### Signature
|
|
|
|
`m.redraw()`
|
|
|
|
Argument | Type | Required | Description
|
|
----------- | -------------------- | -------- | ---
|
|
**returns** | | | Returns nothing
|
|
|
|
---
|
|
|
|
### How it works
|
|
|
|
When callbacks outside of Mithril run, you need to notify Mithril's rendering engine that a redraw is needed. External callbacks could be `setTimeout`/`setInterval`/`requestAnimationFrame` callbacks, web socket library callbacks, event handlers in jQuery plugins, third party XHR request callbacks, etc.
|
|
|
|
To trigger a redraw, call `m.redraw()`. Note that `m.redraw` only works if you used `m.mount` or `m.route`. If you rendered via `m.render`, you should use `m.render` to redraw.
|
|
|
|
You should not call m.redraw from a [lifecycle method](lifecycle-methods.md). Doing so will result in undefined behavior. |