flutter - rivierpod 新版简易教程

打印 上一主题 下一主题

主题 899|帖子 899|积分 2697

RiverPod2.6.1简易使用

Riverpod的界说:
Riverpod 是 Flutter/Dart 的反应式状态管理框架。
启用Riverpod方式:
在 pubspec.yaml 文件中添加 Riverpod 的依赖,如图所示:

在main.dart文件中,使用 ProviderScope 包裹整个应用,来启用 Riverpod,如图所示:

理解传统的Provider和Riverpod的Provider的区别 :
provider是小部件,通常在MultiProvider中配置(传统的 Provider 用法)
在 Riverpod 中,Provider 不再是小部件,而是普通的 Dart 对象,可以在任何地方界说,终极作为全局变量声明。
在 Riverpod 中,Provider 的实现如下:

传统的Provider使用BuildContext方式为:
Provider 是基于 InheritedWidget 封装的,读取状态需要 BuildContext,因此只能在 Widget 树中声明使用。
Provider 的界说如下:
Provider(…);
provider使用BuildContext读取方式为:
  1. class Example extends StatelessWidget {
  2.    
  3. @override
  4. Widget build(BuildContext context) {
  5.    
  6. Model model = context.watch<Model>();
  7. }
  8. }
复制代码
在Riverpod中,使用provider访问widgetRef方式为:
Riverpod中不是使用BuildContext来读取状态,而是使用WidgetRef读取状态。
  1. final modelProvider= Provider<Model>(...)
  2. class Example extends ConsumerWidget{
  3.    
  4. @override
  5. Widget build(BuildContext context, WidgetRef ref) {
  6.    
  7. Model model = ref.watch(modelProvider);
  8. }
  9. }
复制代码
结论:传统的Provider 使用 StatelessWidget,而 Riverpod 使用 ConsumerWidget。
ConsumerWidget 与 StatelessWidget 的唯一区别是,它有一个额外的 WidgetRef 参数,能够访问和操作全部的 Provider。
传统的Provider和Riverpod 使用Consumer的区别:
Consumer用于在 Widget 树中读取并相应Provider状态的变革。
这是传统Provider使用Consumer的方式如下:
  1. Provider<Model>(...);
  2. Consumer<Model>(
  3. buider:(BuildContext context,Model model,Widget? child){
  4.    
  5. }
  6. )
复制代码
在Riverpod中,使用Consumer访问provider的方式如下:
  1. final modelProvider = Provider<Model>(...);
  2. Consumer(
  3. builder: (BuildContext context, WidgetRef ref, Widget? child) {
  4.    
  5. Model model = ref.watch(modelProvider);
  6. }
  7. )
复制代码
结论:传统的Provider使用Counsumer是通过BuildContext获取状态。
Riverpod中provider使用Counsumer是通过widgetRef获取状态。
RiverPod中Provider的范例:
provider用于界说一个值,暴露给其他provider使用。
StateProvider用于暴露一个状态,可以是enum,String,boolean,number。
FutureProvider专门用于处理惩罚Future对象,可以自动处理惩罚异步操作的状态。
StateNotifierProvider是一个用于监听和暴露StateNotifier的提供者&#

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用户云卷云舒

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表