| Nhập Môn ScopedModel: Kiến Trúc Quản Lý Trạng Thái Phân Tách UI Và Business Logic

Được viết bởi thanhdt vào ngày 01/06/2026 lúc 20:17 | 6 lượt xem

Trong phát triển ứng dụng di động chuyên nghiệp, việc viết lẫn lộn code vẽ giao diện và code xử lý logic (tính toán, gọi mạng) vào cùng một file Widget là một thói quen rất xấu. ScopedModel là giải pháp hoàn hảo để tách biệt chúng.

1. Ba cột trụ của ScopedModel

Kiến trúc ScopedModel hoạt động dựa trên 3 thành phần cốt lõi:
* Model: Nơi chứa dữ liệu và logic nghiệp vụ. Lớp Model này kế thừa từ Model của thư viện ScopedModel.
* ScopedModel: Widget cung cấp Model cho các Widget con nằm bên dưới nó trong cây thư mục.
* ScopedModelDescendant: Widget lắng nghe và tự động vẽ lại giao diện bất cứ khi nào Model có cập nhật mới.

2. Kích hoạt vẽ lại UI bằng notifyListeners()

Bên trong Model, sau khi xử lý thay đổi dữ liệu (ví dụ: thêm thành viên mới thành công), bạn gọi hàm:

notifyListeners();

Hàm này sẽ thông báo cho toàn bộ các ScopedModelDescendant đang lắng nghe biết để tự động cập nhật lại UI tức thì.