美文网首页
Provider理解

Provider理解

作者: 三千烦恼风_eefa | 来源:发表于2022-08-31 19:28 被阅读0次

    Provider通常使用ChangeNotifierProvider配合ChangeNotifier一起来实现状态的管理与Widget的更新。

    ChangeNotifierProvider本质上其实就是Widget,它作为父节点Widget,可将数据共享给其所有子节点Widget使用或更新;

    1. 创建model,继承ChangeNotifier,用来实现数据更新的通知并监听数据的变化;

        调用notifyListeners()通知给监听方
      
    2. 创建ChangeNotifierProvider,用来声明Provider,实现跨组建的数据共享;

      用ChangeNotifierProvider将父布局包裹,在父或子节点ChildA通过Provider.of<T>(BuildContext context, {bool listen = true})进行数据操作,可同步更新父与子的数据与UI。其中listen默认为true可监听数据的变化,为false的情况只可读取数据的值
      
    3. 接收共享数据;context.watch<>()和context.read<>()

      不管是在父节点还是在子节点,都可以对ProviderViewModel的数据进行操作和监听。例1在操作与读取时使用的是Provider.of<T>(BuildContext context, {bool listen = true})的方式,为了可以更明确对于Provider的操作,我们可将它替换为context.watch<>()和context.read<>()方式。 我们可以通过源码看到,context.watch<>()和context.read<>()方法其实都是调用Provider.of<T>(BuildContext context, {bool listen = true})来实现
      

    相关文章

      网友评论

          本文标题:Provider理解

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