当前位置: 首页 > news >正文

Flutter中 Provider 的基础用法超详细讲解(一)

目录

前言

一、什么是 Provider

二、引入 Provider 库

三、Provider 的基本结构

四、Provider的基础用法

1.ChangeNotifierProvider

1.ChangeNotifierProvider是什么

2.使用场景

3.示例代码

1.创建模型类

2.在入口处提供模型

3.在页面中使用模型

4.注意事项

2.FutureProvider

1.什么是FutureProvider

2.示例用法

1.创建异步函数

2.使用FutureProvider提供异步结果

3.注意事项


前言

        在 Flutter 的状态管理方案中,Provider 是一个非常常用且推荐的库。它轻量、功能强大、集成简洁,是 Google 官方推荐的状态管理工具之一。本文将通过一个完整示例,带你一步步掌握 Provider 的基础用法。

一、什么是 Provider

        简单来说,Provider 是基于 InheritedWidget 封装的一套状态管理工具。它的核心目标是 “提供数据并让子组件监听这些数据的变化”。

        相比直接使用 setState() 来更新页面,Provider 提供了更清晰、模块化的管理方式。

二、引入 Provider 库

        在 pubspec.yaml 中添加依赖:

dependencies:flutter:sdk: fluttercupertino_icons: ^1.0.8provider: ^6.1.5

安装依赖:

flutter pub get

三、Provider 的基本结构

        我们先看一张概念图:

MaterialApp└── ChangeNotifierProvider(提供模型)└── Consumer 或 context.watch<T>()(监听数据)

        你可以把 ChangeNotifierProvider 理解为数据的“提供者”,而 Consumer 是数据的“消费者”。

四、Provider的基础用法

1.ChangeNotifierProvider

1.ChangeNotifierProvider是什么

        ChangeNotifierProvider 是 provider 包中的一个类,它结合了 ChangeNotifier 和 InheritedWidget 的能力,用于构建响应式的 UI。

        它的作用是监听一个ChangeNotifier对象,并在数据变更时自动更新界面。

        常用于ViewModel(或State)的管理。

2.使用场景

        当你有一个对象内部状态需要变化,并且你希望在状态变化时通知 UI 更新,那么你就可以使用 ChangeNotifierProvider。

3.示例代码

        我们以下面的UI效果为例,看一下ChangeNotifierProvider的用法。

       在下面的demo中,我们点击按钮之后,会随机生成一个城市的名称,并且在UI上显示出来。

        图1.ChangeNotifierProvider用法

1.创建模型类

 

http://www.dtcms.com/a/291286.html

相关文章:

  • C++的“链”珠妙笔:list的编程艺术
  • JAVA序列化知识小结
  • mac终端设置代理
  • 拟合算法(1)
  • socket编程(UDP)
  • QGIS、ArcMap、ArcGIS Pro中的书签功能、场景裁剪
  • 本地部署Dify、Docker重装
  • 时序论文43 | WPMixer:融合小波分解的多分辨率长序列预测模型
  • Nginx配置proxy protocol代理获取真实ip
  • ubuntu远程桌面不好使
  • 修复echarts由4.x升级5.x出现地图报错echarts/map/js/china.js未找到
  • 卷积神经网络基本概念
  • 深度学习之参数初始化和损失函数(四)
  • 深入解析MIPI C-PHY (二)C-PHY三线魔术:如何用6种“符号舞步”榨干每一滴带宽?
  • 设计模式六:工厂模式(Factory Pattern)
  • C语言:20250721笔记
  • 在 Conda 中删除环境及所有安装的库
  • 《使用 IDEA 部署 Docker 应用指南》
  • Linux-rpm和yum
  • Shell脚本编程:从入门到精通的实战指南
  • 从零开始:用Python库轻松搭建智能AI代理
  • Djoser 详解
  • 深度学习中的数据增强:从理论到实践
  • hot100回归复习(算法总结1-38)
  • 力扣面试150(35/150)
  • 【安全篇 / 反病毒】(7.6) ❀ 01. 查杀HTTPS加密网站病毒 ❀ FortiGate 防火墙
  • Excel函数 —— XLOOKUP 双向查找
  • Linux find命令:强大的文件搜索工具
  • 计算机发展史:电子管时代的辉煌与局限
  • 无人机浆叶安装顺序