美文网首页
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://book.flutterchina.club/chapter7/provider.h...

网友评论

      本文标题:flutter_provider

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