Skip to content
Mithril.js 2
Main Navigation GuíaAPI

Español

English
简体中文
繁體中文
Français
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
čeština
magyar

Español

English
简体中文
繁體中文
Français
Русский
Português – Brasil
Deutsch
日本語
한국어
Italiano
Polski
Türkçe
čeština
magyar

Apariencia

Sidebar Navigation

API

API principal

m(selector, attributes, children)

render(elemento, vnodes)

mount(root, component)

route(root, defaultRoute, routes)

request(options)

parseQueryString(string)

buildQueryString(objeto)

buildPathname(objeto)

parsePathname(string)

trust(html)

fragment(attrs, children)

redraw()

censor(object, extra)

API opcional

stream()

Guía

En esta página

redraw() ​

Descripción ​

Actualiza el DOM después de una modificación en la capa de datos de la aplicación.

No es necesario invocarlo si los datos se modifican dentro del contexto de ejecución de un manejador de eventos definido en una vista de Mithril.js, o tras la finalización de una solicitud cuando se usa m.request. El sistema de autoredraw, que se basa en m.redraw(), se encarga automáticamente de esto.

Sí es necesario invocarlo en las funciones callback de setTimeout/setInterval/requestAnimationFrame, o en las funciones callback de bibliotecas externas.

Firma ​

m.redraw()

ArgumentoTipoRequeridoDescripción
returnsNo retorna nada

Miembros estáticos ​

m.redraw.sync ​

m.redraw.sync()

ArgumentoTipoRequeridoDescripción
returnsNo retorna nada

Cómo funciona ​

Cuando se ejecutan funciones callback externas a Mithril.js, es necesario notificar al motor de renderizado de Mithril.js que se requiere un redibujo. Las funciones callback externas pueden ser funciones callback de setTimeout/setInterval/requestAnimationFrame, funciones callback de bibliotecas de WebSocket, manejadores de eventos en plugins de jQuery, funciones callback de solicitudes XHR de terceros, etc.

Para activar un redibujo, invoca m.redraw(). Ten en cuenta que m.redraw solo funciona si has utilizado m.mount o m.route. Si has renderizado a través de m.render, debes usar m.render para redibujar.

m.redraw() siempre activa redibujos asíncronos, mientras que m.redraw.sync() activa uno síncrono. m.redraw() está vinculado a window.requestAnimationFrame(). Por lo tanto, normalmente se ejecutará como máximo 60 veces por segundo. Puede ocurrir más rápido si tu monitor tiene una frecuencia de actualización mayor.

m.redraw.sync() está destinado principalmente a permitir que la reproducción de vídeos funcione en iOS. Esto solo funciona en respuesta a eventos iniciados por el usuario. Conlleva varias advertencias:

  • No debes invocar m.redraw.sync() desde un método de ciclo de vida o el método view() de un componente. Hacerlo puede resultar en un comportamiento indefinido (se genera un error cuando sea posible).
  • m.redraw.sync() invocado desde un manejador de eventos puede provocar modificaciones en el DOM mientras un evento se está propagando. Dependiendo de la estructura de los árboles DOM antiguo y nuevo, el evento puede terminar la fase de propagación en el nuevo árbol y activar manejadores no deseados.
  • No está regulado en su frecuencia. Una invocación de m.redraw.sync() causa inmediatamente una invocación de m.render() por cada nodo raíz registrado con m.mount() o m.route().

m.redraw() no tiene ninguno de esos problemas, puedes invocarlo desde cualquier lugar.

Pager
Anteriorfragment(attrs, children)
Siguientecensor(object, extra)

Publicado bajo la licencia MIT.

Copyright (c) 2024 Mithril Contributors

https://mithril.js.org/redraw.html

Publicado bajo la licencia MIT.

Copyright (c) 2024 Mithril Contributors