Untuk membangun Deklaratif, Antarmuka Pengguna Web Berbasis Komponen di DART.
Menyediakan perpustakaan yang kaya dari elemen virtual yang diketik untuk SVG & HTML standar.
Mendukung mendefinisikan komponen khusus dengan antarmuka yang mirip dengan React. Semua metode siklus hidup yang sama didukung.
Dibangun dengan rendering async sejak awal.
Sepenuhnya sesuai dengan DART 2, Mode Kuat, dan DDC.
Lihat dokumentasi di halaman GitHub untuk melihat secara mendalam di kerangka kerja
Itu ditulis di DART. Plus:
Generator adalah fitur paling unik dari WUI_BUILDER. Generator menghasilkan pembangun elemen DOM virtual untuk setiap jenis elemen yang ditentukan dalam paket DART HTML dan SVG. Setiap pembangun elemen DOM virtual memberikan setter yang diketik dengan yang sama dengan elemen HTML/SVG yang sesuai. Ini membuatnya mudah untuk menulis komponen yang tangguh.
Selanjutnya, WUI_Builder mendukung rendering iteratif untuk menghindari memblokir utas utama pada pembaruan besar. Pembaruan iteratif hanya proses pada callback idle, yang berarti pekerjaan rendering & tata letak akan dibagi di beberapa frame. WUI_BUILDER memberikan kekuatan kepada pengembang untuk memutuskan kapan komponen harus diterjemahkan. Ini memungkinkan pengembang dapat memutuskan apakah komponen memperbarui secara sinkron, pada bingkai animasi, atau callback on dan idle. Idealnya, komponen akan:
Namun, pembaruan sinkron juga diizinkan untuk menjalankan permintaan, tanpa menunggu bingkai animasi atau panggilan balik idle.
Akhirnya, WUI_BUILDER mencegah pembaruan yang tidak perlu ketika beberapa pembaruan untuk komponen yang sama antri sebelum proses apa pun. Misalnya, katakanlah saya memiliki komponen yang memperbarui bingkai animasi menggunakan setStateOnImationFrame. Jika SetStateOnImationFrame dipanggil dua kali di antara frame, proses pembaruan hanya akan dijalankan sekali saat memungkinkan kedua fungsi setter state untuk dieksekusi.
Catatan, RequestIdLecallback saat ini tidak didukung oleh semua browser dan WUI_BUILDER tidak termasuk Polyfill saat ini. Render sinkron masih berfungsi di semua browser. Lihat bagan kompatibilitas di sini.
class HelloWorldProps {
final String text;
HelloWorldProps ( this .text);
}
class HelloWorld extends PComponent < HelloWorldProps > {
HelloWorld ( String text) : super ( HelloWorldProps (text));
@override
VNode render () => VDivElement ()
..text = props.text;
}
// instantiate the component, pass it an instance of HelloWorldProps
final component = HelloWorld ( 'Hello world' );
// render the virtual element into a container
render (component, querySelector ( '#container' ));Lihatlah dokumentasi di halaman GitHub untuk lebih banyak contoh mendalam.