携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第3天,点击查看活动详情
无需外部库的 Flutter 状态管理。
我们知道有很多很棒的包可以用来管理 Flutter 中的状态,比如 bloc、provider、riverpod、getx 等等。但是,如果您正在开发一个非常简单的应用程序,您可以尝试这种方法:
使用Set State
这是 Flutter 中基本的状态管理。您可以通过调用 setState 函数在有状态小部件中使用它。因此,在您编写代码后,您可以调用 setState 然后它会更新视图。或者您可以在 setState 函数中编写代码。
使用Change Notifier
通过使用更改通知程序,您只需编写一次 setState。首先,您应该使用 ChangeNotifier 扩展您的 Controller 类,然后在控制器中调用 NotifyListener() 函数。不要忘记在 initState 中添加一个监听器并用 setState 函数填充它。 现在每次调用notifyListener都会触发监听器调用setState。
试试飞镖垫:
https ://dartpad.dev/?id=8eccc697d5fb5b71aa3a1bf4e2a377b6
但是,如果我们希望我们的小部件保持无状态怎么办?
使用 ValueListenableBuilder
您可以在 Controller 中使用 ValueNotifier 变量,然后在我们的无状态小部件中添加 ValueListenableBuilder。当变量 ValueNotifier 发生变化时,它将处理状态,并自动更新视图。
试试飞镖垫: https ://dartpad.dev/?id=14afd8ac46b05068570d08d107869cea
使用 StreamBuilder
它类似于 ValueListenableBuilder,但我们使用 StreamController 代替,因此我们可以利用流的优势。
试试飞镖垫: https ://dartpad.dev/?id=3ca52bb28d4aa6db68d7597e0df08fb8