GETX FLUTTER – STATE MANAGEMENT – CÁCH QUẢN LÝ STATE VỚI OBX

GetX trong Flutter là một thư viện rất tiện ích và được dùng rất nhiều trong lập trình Flutter. GetX cung cấp các giải pháp mạnh mẽ và tiện lợi như : quản lý state có performance cao, dependency injection thông minh, quản lý route nhanh và hiệu quả.

Ở bài viết trước về GetX State management Báo Flutter đã hướng dẫn chi tiết về cách triển khai State Management với GetBuilder. Nhưng trong bài viết này, Báo Flutter tiếp tục hướng dẫn cách triển khai State Management với Obx.

Nắm rõ khái niệm Obx và kiến thức chuyển đổi
Obx : Là một khái niệm viết ghép giữa : Observer và RxDart.
Tức là sử dụng Observer trong RxDart
Từ đó sinh ra các khái niệm : RxString, RxInt, RxDouble, RxBool…
Dưới đây là một ví dụ về chuyển đổi giữa các kiểu dữ liệu static và kiểu dữ liệu Rx.

1. Khai báo thư viện
Tạo một project mới và khai báo thư viện mới nhất trong file pubspec.yaml

Tạo cấu trúc project như bên dưới :

2. Sử dụng GetMaterialApp
Khi sử dụng bất cứ tính năng gì của GetX bạn cũng nên khai báo :

và sử dụng GetMaterialApp trong Widget đầu tiên của ứng dụng.

3. Xác định các giá trị trọng tâm

Trong ví dụ này Báo Flutter muốn truyền các giá trị là thông tin của Báo Flutter từ màn hình Home đến các màn hình khác thông nhờ GetX và khi các giá trị này thay đổi thì các Widget sử dụng những biến này cũng cập nhật theo.

Kịch bản như thế này :
+ Tạo màn hình Home để nhập thông tin của Báo Flutter, Sau đó nhấn nút ” Xác nhận” rồi chuyển sang màn hình khác mà màn hình đó có thể sử dụng được dữ liệu về Báo Flutter thông qua GetX.

Các giá trị cần được truyền đi là các thông tin: tên, số zalo, website, mô tả

Vì thế chúng ta cần tạo một controller :
Tạo một file: information_controller.dart, trong folder : controller

4.Thực hiện chức năng cập nhật

4.1-Trong folder : resources > widgets , tạo file : common_widgets.dart có nội dung :

4.2-Tạo file: strings.dart trong : resources > strings

4.3-Thực hiện tính năng cập nhật thông tin lên “provider”

Tính năng cập nhật thông tin lên “provider” , chúng ta đặt trong button “Xác nhận”.
Chi tiết như đoạn code bên dưới trong home_page.dart:

Tạo information_page.dart để hiển thị thông tin

Hoặc bạn có thể sử dụng Obx để hiển thị lên view:

Kết quả

Full SourceCode in Github => GetX Flutter – StateManagement với Obx

Như vậy, Trong việc quản lý State, trong Flutter GetX cũng có phần giống như Provider nhưng viết code với GetX rất gọn gàng và tối giản.
Đặc biệt khi dùng Obs thì độ tối giản và performance sẽ tốt hơn so với dùng GetBuilder thông thường.
Cảm ơn bạn đã theo dõi và tiếp tục đón đọc các chức năng rất hay của GetX trong lập trình Flutter.

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 *