Skip to content
Mithril.js 2
Main Navigation KılavuzAPI

Türkçe

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

Türkçe

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

Görünüm

Sidebar Navigation

API

Çekirdek API

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)

m.fragment(attrs, children)

redraw()

censor(object, extra)

İsteğe Bağlı API

stream()

Kılavuz

Bu sayfada

redraw() ​

Açıklama ​

Uygulama veri katmanında bir değişiklik olduğunda DOM'u günceller.

Mithril.js görünümünde tanımlı bir olay işleyicisinin bağlamında çalışırken veya m.request kullanıldığında istek tamamlandığında veri değişirse, bu fonksiyonu çağırmanıZA GEREK YOKTUR. m.redraw() üzerine inşa edilmiş otomatik yeniden çizim sistemi bu işlemi otomatik olarak gerçekleştirir.

setTimeout/setInterval/requestAnimationFrame geri çağrıları veya 3. parti kütüphanelerden gelen geri çağrılarda çağırmanız GEREKİR.

İmza ​

m.redraw()

ArgümanTipGerekliAçıklama
döndürürHerhangi bir değer döndürmez.

Statik Üyeler ​

m.redraw.sync ​

m.redraw.sync()

ArgümanTipGerekliAçıklama
döndürürHerhangi bir değer döndürmez.

Nasıl Çalışır ​

Mithril.js dışındaki geri çağrılar çalıştığında, Mithril.js'nin işleme motoruna yeniden çizim yapılması gerektiğini bildirmeniz gerekir. Harici geri çağrılar setTimeout/setInterval/requestAnimationFrame geri çağrıları, web soketi kütüphanelerinin geri çağrıları, jQuery eklentilerindeki olay işleyicileri, üçüncü taraf XHR istek geri çağrıları vb. olabilir.

Yeniden çizimi başlatmak için m.redraw()'ı çağırın. m.redraw'un yalnızca m.mount veya m.route kullandıysanız çalıştığını unutmayın. m.render aracılığıyla işlediyseniz, yeniden çizmek için m.render'ı kullanmalısınız.

m.redraw() her zaman eşzamansız yeniden çizimleri tetiklerken, m.redraw.sync() eşzamanlı bir yeniden çizimi tetikler. m.redraw(), window.requestAnimationFrame()'e bağlıdır. Bu nedenle saniyede en fazla 60 kez tetiklenir. Ekranınız daha yüksek bir yenileme hızına sahipse, daha sık tetiklenebilir.

m.redraw.sync(), çoğunlukla iOS'ta video oynatmayı mümkün kılmak için tasarlanmıştır. Bu yalnızca kullanıcı tarafından tetiklenen olaylara yanıt olarak çalışır. Aşağıdaki hususlara dikkat edilmelidir:

  • Bir yaşam döngüsü metodu veya bir bileşenin view() metodundan m.redraw.sync()'u çağırmamalısınız. Bunu yapmak, öngörülemeyen davranışlara yol açar (mümkünse bir hata fırlatılır).
  • m.redraw.sync() bir olay işleyicisinden çağrıldığında, olay yayılırken DOM'un değişmesine yol açabilir. Eski ve yeni DOM ağaçlarının yapısı farklıysa, olay yeni ağaçta yayılmaya devam edebilir ve istenmeyen işleyicilerin çalışmasına neden olabilir.
  • Hız sınırlaması yoktur. m.redraw.sync()'a yapılan bir çağrı, m.mount() veya m.route() ile kaydedilen her kök bileşen için hemen bir m.render() çağrısına neden olur.

m.redraw() bu sorunlara sahip değildir, bu nedenle istediğiniz yerden çağırabilirsiniz.

Pager
Önceki sayfam.fragment(attrs, children)
Sonraki sayfacensor(object, extra)

MIT Lisansı altında yayınlanmıştır.

Copyright (c) 2024 Mithril Contributors

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

MIT Lisansı altında yayınlanmıştır.

Copyright (c) 2024 Mithril Contributors