main()
Entri gambar naskah instrumen. CapDrive memanggil main() untuk mendapatkan layar ini dan bertanggung jawab atas tata letak, gambar, dan penyegaran selanjutnya.
Proses eksekusi
Setiap kali menerima masukan baru, CapDrive memperbarui data saat ini dan lingkungan tampilan, mengeksekusi seluruh file dalam lingkup lokal baru, dan kemudian memanggil main() yang ditentukan kali ini. Fungsi ini mengembalikan array View, View bawaan, atau konten kosong secara sinkron.
Pengambilan dan penghitungan tingkat atas juga diperbarui pada setiap eksekusi. Variabel biasa diinisialisasi ulang setiap kali, dan $sessionStorage digunakan untuk status span.
Perubahan pada masukan saat ini, definisi masukan, atau lingkungan tampilan akan memicu eksekusi, dan tidak ada frekuensi tetap yang seragam. Masukan yang identik dilewati dan hanya masukan terakhir yang tertunda yang disimpan dalam pemrosesan. Pertumbuhan jendela riwayat, pembersihan, dan perubahan waktu sampel internal tidak memicu eksekusi satu per satu; perubahan input waktu yang ditentukan secara eksplisit masih terpicu. Animasi dilakukan secara mandiri oleh sisi gambar.
Contoh: Menggambar dengan pembacaan saat ini
Pilih kecepatan dalam pengaturan meteran. Setiap panggilan membaca kecepatan terkini, menghasilkan angka dan satuan; menampilkan garis horizontal ketika tidak ada kecepatan yang tersedia.
function main() {
const speed = $data.current.speed;
return (
<VStack spacing={8}>
<Text fontSize={64} color={$env.foreground}>
{speed?.value == null ? '—' : Math.round(speed.value)}
</Text>
<Text fontSize={16} color={$env.accent}>
{speed?.unit ?? $env.speedUnit}
</Text>
</VStack>
);
}
Status antar pemanggilan fungsi
Variabel lokal biasa hanya digunakan untuk pemanggilan fungsi ini. Gunakan $sessionStorage ketika Anda perlu mempertahankan status nilai puncak, jumlah, dll. dalam perjalanan saat ini; itu diisolasi oleh perjalanan dan instrumen, dan akan dibersihkan ketika perjalanan berakhir atau instrumen diisi ulang.
Ketika daftar diperlukan, View dapat dihasilkan dari array map. Menyediakan key yang stabil untuk item yang diperbarui atau diubah posisinya sehingga pembaruan gambar dan animasi tetap sesuai dengan item yang sama.
Persyaratan operasional dan kesalahan
main() harus diselesaikan dalam panggilan sinkron. Hindari perulangan yang berkelanjutan, pemblokiran waktu tunggu, dan struktur data yang tumbuh tanpa batas; runtime akan membatasi waktu eksekusi, langkah, dan ukuran konten gambar. Nilai dalam atribut gambar harus berupa angka berhingga, dan hasil penghitungan harus terlebih dahulu menangani tes yang hilang, pembagian dengan nol, dll.
Kesalahan skrip ditampilkan dalam status kesalahan instrumen dan log terkait. Pratinjau digunakan untuk memverifikasi kode tampilan; pembacaan meter sebenarnya bergantung pada data yang dipilih dan sumber data saat ini.