NGHỆ THUẬT FLUTTER : CÁC CÁCH QUẢN LÝ STATE TRONG FLUTTER – InheritedWidget

InheritedWidget là một trong những cách quản lý State (State Management) cơ bản, sơ khai nhất trong lập trình Flutter.

I. InheritedWidget dùng để làm gì ?

– Dùng để truyền data giữa Widget tổ tiên ( cha, ông.. )-ancestor widget, cho các widget con -descendant Widgets. Hình bên dưới là một ví dụ :

II. InheritedWidget hoạt động như nào ?

– Trong một cây Widget( Widget tree ), sẽ có các loại widget khác nhau ( Cha, con …), trong đó có widget cha sử dụng InheritedWidget để truyền data xuống các widget con có nhu cầu.

Dưới đây là một ví dụ, các Widget con có thể lấy data và thay đổi data của Widget cha có sử dụng InheritedWidget.

– TheStatefulWidget: là một Widget đăng ký InheritedWidget, nghĩa là data ( variables, function ) sẽ có thể được chia sẻ và can thiệp bởi các Widget con khác.

– ColorBox, LabelBox là các widget sẽ sử dụng data và tác động data từ widget : TheStatefulWidget .

Trong TheStatefulWidget chúng ta đã đăng kí sử dụng InheritedWidget, dưới đây là cách sử dụng:
* Lấy giá trị boolean: _changed

* Chạy hàm changeColor():

Dưới đây là fullcode bạn có thể chạy thử:

Như vậy trong việc sử dụng InheritedWidget, bạn chỉ cần nhớ 2 điều quan trọng :
– Widget nào đăng kí InheritedWidget
– Sử dụng data ở những Widget con nào

Sử dụng InheriteWidget là một cách quản lý State ( State Management ) cơ bản, giúp truyền data từ widget tổ tiên (ancestor widget ) sang các widget con cháu (descendant widget).
+ Ưu điểm của phương pháp này là rất tiện lợi, nhanh gọn đối với đoạn cây Widget nhỏ ( Widget Tree).
+ Nhược điểm của phương pháp này là khi áp dụng vào đoạn widget Tree lớn thì sẽ rất khó kiểm soát và khó triển khai.
Khi muốn triển khai trên đoạn Widget Tree lớn, chúng ta nên dùng Provider

Bạn có thể tham khảo link Github của bài viết ở đây => Github Link

Chúc các bạn có được nhiều kiến thức từ blog Báo 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 *