美文网首页
flutter_provider

flutter_provider

作者: 走停2015_iOS开发 | 来源:发表于2020-10-21 16:38 被阅读0次

    参考文档 :

    从3.0版本到4.0版本改动 确实比较大,迁移和运用的过程中,内心是奔溃的,最后中找到规律其实发现容易了很多

    运用场景

    1.多个weight 共用一块数据资源 可以使用provider共享出去
    2.共享数据发生变化 子weight的数据也需要响应变化
    `注意问题:过多的重构build 消耗性能`
    
    image.png

    解释一下上图 Model变化后会自动通知ChangeNotifierProvider(订阅者),ChangeNotifierProvider内部会重新构建InheritedWidget,而依赖该InheritedWidget的子孙Widget就会更新。

    其实在实现状态管理过程中用到俩个过程

    • InheritedWidget

    • ChangeNotifier

    当然provider组件也提供了别的类 Consumer Selector 大致实现如下

    // 这是一个便捷类,会获得当前context和指定数据类型的Provider
    class Consumer<T> extends StatelessWidget {
      Consumer({
        Key key,
        @required this.builder,
        this.child,
      })  : assert(builder != null),
            super(key: key);
    
      final Widget child;
    
      final Widget Function(BuildContext context, T value) builder;
    
      @override
      Widget build(BuildContext context) {
        return builder(
          context,
          ChangeNotifierProvider.of<T>(context), //自动获取Model
        );
      }
    }
    

    相关文章

      网友评论

          本文标题:flutter_provider

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