美文网首页
Flutter_(跨组件状态共享)Provider状态管理

Flutter_(跨组件状态共享)Provider状态管理

作者: Eyes_cc | 来源:发表于2022-07-05 13:42 被阅读0次

一、状态管理

在 Flutter 开发中,状态管理是一个永恒的话题。一般的原则是:如果状态是组件私有的,则应该由组件自己管理;如果状态要跨组件共享,则该状态应该由各个组件共同的父组件来管理。

对于组件私有的状态管理很好理解,但对于跨组件共享的状态,管理的方式就比较多了,比如:

  • 使用全局事件总线EventBus(将在下一章中介绍)。
    它是一个观察者模式的实现,通过它就可以实现跨组件状态同步:状态持有方(发布者)负责更新、发布状态,状态使用方(观察者)监听状态改变事件来执行一些操作。

1、什么是provider

gitHub https://github.com/rrousselGit/provider/blob/master/resources/translations/zh-CN/README.md

现有的 provider

provider 中提供了几种不同类型的「provider」,供不同类型的对象使用。

完整的可用列表参见 此处

名称 描述
Provider 最基础的 provider 组成,接收一个任意值并暴露它。
ListenableProvider 供可监听对象使用的特殊 provider。ListenableProvider 会监听对象,并在监听器被调用时更新依赖此对象的 widgets。
ChangeNotifierProvider 为 ChangeNotifier 提供的 ListenableProvider 规范,会在需要时自动调用 ChangeNotifier.dispose
ValueListenableProvider 监听 ValueListenable,并且只暴露出 ValueListenable.value
StreamProvider 监听流,并暴露出当前的最新值。
FutureProvider 接收一个 Future,并在其进入 complete 状态时更新依赖它的组件。

相关文章

网友评论

      本文标题:Flutter_(跨组件状态共享)Provider状态管理

      本文链接:https://www.haomeiwen.com/subject/obnjhrtx.html