美文网首页
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