NGHỆ THUẬT FLUTTER : FutureProvider, StreamProvider

Provider trong Flutter là một phần rất quan trọng, trong bài viết trước tôi đã giới thiệu các dùng Provider một cách cơ bản. Trong bài viết này tôi lại gửi tiếp đến các bạn về Provider Advanced. Provider Advanced trong bài viết này tôi sẽ viết về FutureProvider, StreamProvider. Như các bạn đã biết FutureBuilder và StreamBuilder, chúng được dùng để xử lý data khi load data từ internet hoặc database, chỉ load một lần, khi data thay đổi thì Widget cũng không được cập nhật cho đến khi người dùng load lại screen. Nhưng với FutureProvider và StreamProvider thì khác, chúng luôn lắng nghe sự thay đổi, khi có sự thay đổi giá trị của các thuộc tính thì Widget cũng sẽ tự cập nhật theo. Tạo một project mới FutureProvider Cài đăt thư viện provider trong file pubspec.yaml Tạo file Json Để sử dụng FutureProvider, tôi sẽ load data từ một file Json Tạo folder assets, trong folder này tạo một file : info.json Khai báo trong file : pubspec.yaml Tạo Model - User Model Khi load một dữ liệu dưới dạng Json, chúng ta thường tạo model - một đối tượng để xử lý data. Load data từ Json file Load data từ file Json trong file assets, sẽ được converts sang User Model List Tạo page hiển thị Như đoạn code trên chúng ta đã thấy, sử dụng Provider : Khai báo FutureProvider trong Widget cha, ở đây chúng ta dùng trong MaterialApp StreamProvider Stream là một khái niệm thường dùng trong lập trình bất đồng bộ ( asynchronous programming ), cũng tương tự khi dùng trong StreamProvider nhưng StreamProvider luôn lắng nghe khi có sự cập nhật, sẽ dẫn đến cập nhật Widget. 1. Tạo Stream Tạo một stream là một chuỗi số tăng tự động sau một giây 2. Sử dụng Provider và hiển thị Cũng giống như FutureProvider, sử dụng provider cũng tương tự: Đăng ký StreamProvider trong Widget tổ tiên Hiển thị giao diện khi sử dụng FutureProvider, StreamProvider Trong file main.dart, cập nhật hoàn chỉnh như bên dưới Dưới đây là kết quả: Sourcecode của bài viết này sẽ được lưu tại Github. Kết luận: Như vậy FutureProvider, StreamProvider có rất nhiều ưu việt. Nó không chỉ được dùng để load data từ internet hay từ database, mà nó còn luôn lắng nghe, khi có sự thay đổi thì Widget đăng kí provider sẽ được cập nhật theo. Chúc các bạn có được nhiều kiến thức từ Báo Flutter !

One Reply to “NGHỆ THUẬT FLUTTER : FutureProvider, StreamProvider”

  1. StreamProvider

    Cho mình hỏi xíu là. lsao có thể stop được cái StreamProvider ạ.

    Ví dụ như trên bạn đang làm 1 bài toán là sau 1s thì count++. vậy mình muốn stop nó lại thì làm ntn ạ

    thanks

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *