Skip to content
Mithril.js 2
Main Navigation GuiaAPI

Português – Brasil

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

Português – Brasil

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

Aparência

Sidebar Navigation

API

API principal

m(selector, attributes, children)

render(element, vnodes)

mount(root, component)

route(root, defaultRoute, routes)

request(options)

parseQueryString(string)

buildQueryString(object)

buildPathname(object)

parsePathname(string)

trust(html)

fragment(attrs, children)

redraw()

censor(object, extra)

API Opcional

stream()

Guia

Nesta página

redraw() ​

Descrição ​

Atualiza o DOM após uma alteração nos dados da aplicação.

Você NÃO precisa chamá-lo se os dados forem modificados dentro do contexto de execução de um manipulador de eventos definido em uma view do Mithril.js, ou após a conclusão de uma requisição ao usar m.request. O sistema de autoredraw, que é construído sobre m.redraw(), cuidará disso automaticamente.

Você PRECISA chamá-lo em callbacks de setTimeout/setInterval/requestAnimationFrame, ou callbacks de bibliotecas de terceiros.

Assinatura ​

m.redraw()

ArgumentoTipoObrigatórioDescrição
retornaNão retorna nada

Membros estáticos ​

m.redraw.sync ​

m.redraw.sync()

ArgumentoTipoObrigatórioDescrição
retornaNão retorna nada

Como funciona ​

Quando callbacks fora do Mithril.js são executados, você precisa notificar o mecanismo de renderização do Mithril.js de que um redraw é necessário. Callbacks externos podem ser setTimeout/setInterval/requestAnimationFrame, callbacks de bibliotecas de WebSocket, manipuladores de eventos em plugins jQuery, callbacks de requisições XHR de terceiros, etc.

Para disparar um redraw, chame m.redraw(). Note que m.redraw só funciona se você utilizou m.mount ou m.route. Se você renderizou via m.render, você deve usar m.render para forçar o redraw.

m.redraw() sempre dispara redraws assíncronos, enquanto m.redraw.sync() dispara um redesenho síncrono. m.redraw() está vinculado a window.requestAnimationFrame(). Portanto, ele normalmente será chamado no máximo 60 vezes por segundo. Ele pode ser chamado mais rapidamente se o seu monitor tiver uma taxa de atualização maior.

m.redraw.sync() é principalmente destinado a fazer vídeos funcionarem no iOS. Isso só funciona em resposta a eventos gerados pelo usuário e possui algumas ressalvas:

  • Você não deve chamar m.redraw.sync() de um método de ciclo de vida ou do método view() de um componente. Isso resultará em comportamento indefinido (e pode lançar um erro).
  • m.redraw.sync() chamado de um manipulador de eventos pode fazer com que o DOM seja modificado enquanto um evento está em bubbling. Dependendo da estrutura das árvores DOM anteriores e novas, o evento pode terminar a fase de bubbling na nova árvore e disparar manipuladores indesejados.
  • Ele não possui limitação de taxa (throttling). Uma chamada para m.redraw.sync() causa imediatamente uma chamada m.render() para cada raiz registrada com m.mount() ou m.route().

m.redraw() não tem nenhum desses problemas, você pode chamá-lo de onde precisar.

Pager
Anteriorfragment(attrs, children)
Próximocensor(object, extra)

Distribuído sob a Licença MIT.

Copyright (c) 2024 Mithril Contributors

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

Distribuído sob a Licença MIT.

Copyright (c) 2024 Mithril Contributors