6 loại Provider bạn nên biết trong Riverpod Flutter.

6 loại Provider bạn nên biết trong Riverpod Flutter.

Quản lý state trong Rivderpods trở nên dễ dàng cũng bởi vì những loại Provider đa dạng, vậy cách sử dụng chúng như thế nào? Hãy cùng tìm hiểu trong bài viết này nhé.

StateProvider:

StateProvider được sử dụng để quản lý những state cho những biến kiểu nguyên thuỷ như: int, bool, string.

Thực hiện:

Thay đổi state:

ref.read(counterStateProvider.notifier).update((state) => state + 1);

Provider:

Provider được sử dụng để khởi tạo những dependency hay object mà giá trị sẽ không đổi. Ví dụ: bạn có thể sử dụng Provider để khởi tạo những repository hay những class mà có chứa những state là immutable.

ChangeNotifierProvider:

Được sử dụng để quản lý thì state trong cùng 1 class notifier, cách thực hiện cũng giống như bên thư viện Provider, tạo ra 1 class extends từ ChangeNotifier, khi change state cần gọi notifyListeners();

Tiếp theo khởi tạo nó trong provider thôi:

StateNotifierProvider:

Trong Riverpod cách quản lý state bằng ChangeNotifierProvider không còn được khuyến khích mà thay vào đấy nên sử dụng StateNotifierProvider, Khi thay đổi state sẽ không cần gọi tới notifyListeners(); nữa.

FutureProvider:

Việc fetch data sẽ trở nên đơn giản hơn rất nhiều với FutureProvider, khi nhận state FutureProvider sẽ cho chung ta 3 trạng thái là success, error, loading. Ở đây ta return 1 hàm future dùng để fetch data trong FutureProvider này.

Trong widget:

StreamProvider:

Sử dụng StreamProvider để lắng nghe 1 Stream từ 1 realtime Api và tự động rebuild lại UI.

Ví dụ, đây là cách để tạo 1 StreamProvider cho hàm authStateChanges của class FirebaseAuth:

Trong widget:

Done. ^^