main()
Mục vẽ của tập lệnh nhạc cụ. CapDrive gọi main() để lấy màn hình này và chịu trách nhiệm bố trí, vẽ và làm mới sau đó.
Quá trình thực hiện
Mỗi lần nó chấp nhận đầu vào mới, CapDrive sẽ cập nhật dữ liệu hiện tại và môi trường hiển thị, thực thi toàn bộ tệp trong phạm vi cục bộ mới và sau đó gọi main() được xác định lần này. Hàm trả về mảng View, View tích hợp sẵn hoặc nội dung trống một cách đồng bộ.
Các lần tìm nạp và tính toán cấp cao nhất cũng được cập nhật trong mỗi lần thực thi. Các biến thông thường được khởi tạo lại mỗi lần và $sessionStorage được sử dụng cho trạng thái span.
Những thay đổi trong đầu vào hiện tại, định nghĩa đầu vào hoặc môi trường hiển thị sẽ kích hoạt quá trình thực thi và không có tần số cố định thống nhất. Các đầu vào giống hệt nhau sẽ bị bỏ qua và chỉ những đầu vào đang chờ xử lý mới nhất mới được giữ lại trong quá trình xử lý. Việc tăng trưởng, dọn dẹp và thay đổi thời gian mẫu nội bộ không kích hoạt việc thực thi riêng lẻ; những thay đổi đầu vào thời gian được xác định rõ ràng vẫn kích hoạt. Hoạt ảnh được thực hiện độc lập bởi phía bản vẽ.
Ví dụ: Vẽ bằng số đo hiện tại
Chọn tốc độ trong cài đặt đồng hồ. Mỗi cuộc gọi sẽ đọc tốc độ mới nhất, tạo ra số và đơn vị; hiển thị một đường ngang khi không có tốc độ.
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>
);
}
Trạng thái giữa các lần gọi hàm
Các biến cục bộ thông thường chỉ được sử dụng cho lệnh gọi hàm này. Sử dụng $sessionStorage khi bạn cần giữ lại giá trị cao nhất, số lượng, v.v. trạng thái trong chuyến đi hiện tại; nó bị cô lập bởi trường hợp chuyến đi và thiết bị và sẽ bị xóa khi chuyến đi kết thúc hoặc thiết bị được tải lại.
Khi cần danh sách, View có thể được tạo từ mảng map. Cung cấp key ổn định cho các mục cập nhật hoặc chỉnh lại luồng để các bản cập nhật bản vẽ và hoạt ảnh tiếp tục tương ứng với cùng một mục.
Yêu cầu vận hành và lỗi
main() phải được hoàn thành trong cuộc gọi đồng bộ. Tránh các vòng lặp liên tục, chờ đợi chặn và cấu trúc dữ liệu phát triển không giới hạn; thời gian chạy sẽ giới hạn thời gian thực hiện, các bước và kích thước nội dung bản vẽ. Các giá trị trong thuộc tính bản vẽ cần phải là số hữu hạn và kết quả tính toán trước tiên phải xử lý các bài kiểm tra còn thiếu, chia cho 0, v.v.
Lỗi tập lệnh được hiển thị trong trạng thái lỗi của thiết bị và nhật ký tương ứng. Bản xem trước được sử dụng để xác minh mã hiển thị; chỉ số thực tế của đồng hồ phụ thuộc vào dữ liệu đã chọn và nguồn dữ liệu hiện tại.