首页 > 其他分享 >另外一种状态管理方法

另外一种状态管理方法

时间:2024-07-29 22:57:47浏览次数:6  
标签:状态 另外 管理 数据 更新 GetBuilder 组件 方法 数据模型

文章目录


我们在上一章回中介绍了"使用get进行依赖管理"相关的内容,本章回中将介绍如何使用get进行状态管理一.闲话休提,让我们一起Talk Flutter吧。

在这里插入图片描述

1. 概念介绍

在Flutter开发中状态管理是必不可少的内容,我们在前面章回中介绍过这方面的内容,同时介绍了常用的状态管理组件:Provider.本章回中我们将介绍Get包中的状
态管理组件:GetBuilder,以及如何使用GetBuilder组件来管理状态。

2. 思路与方法

2.1 实现思路

使用GetBuilder组件实现状态管理的方法和使用Provider实现状态管理的方法类似,下面是具体的实现思路:

  • 创建一个数据模型类,用来管理数据,通常用是创建GetxController类的子类;
  • 在数据模型类中创建更新数据的方法,更新数据时调用父类的update方法;
  • 在页面中使用GetBuilder组件监听数据变化,并且把更新后的数据同步到该组件中生成的组件上;
  • 在页面中通过依赖管理获取到数据模型类对象, 并且调用调用更新数据的方法来更新数据;
    上面介绍的实现思路比较抽象,我们将在后面的小节中通过示例代码来演示。如果大家熟悉Provider的话,就会发现该思路和Provider基本上一样,不一样的地方是该
    思路中没有在main方法中设置providers,而是通过依赖管理来获取数据模型对象。还有就是一些细节上不同,比如,数据模型类的父类和监听数据更新的组件。稍后,
    我们将对这些中用到的组件进行详细的介绍。

2.2 相关组件

在上面介绍的实现思路中我们用到了GetxController类,它类似ChangeNotifier类,主要用来管理数据的更新,它也提供了update()方法来更新数据模型中的数
据,该方法的功能和notifyListeners()方法完全相同。上面思路中使用的GetBuilder组件主要用来监听数据变化,并且把更新后的数据同步到该组件中生成的组件
上,它生成组件时通过builder属性来实现,这个属性的用法类似官方同名的属性。GetBuilder组件类似Consumer组件,它们的用法十分相似。我们在这里就展开介
绍了,大家看一下示例代码就能明白它的用法。

3. 示例代码

///这个是配合GetBuilder使用的数据模型类
class ValueController extends GetxController {
  int iValue = 0;
  String strValue = "default string";

   ///
  void updateValue() {
    iValue = 666;
    strValue = "new String Value";
    update();
  }
}

///在页面中显示数据,页面中的数据会随着数据模型中的数据更新而更新
GetBuilder<ValueController>(
  ///init可以加也可以不加,GetBuilder会自动获取该对象
  init: ValueController(),
  builder: (controller) {
    return Text("intValue: ${controller.iValue.toString()}, strValue: ${controller.strValue}");
  }
),


///put方法通过依赖注入来初始化实例对象,然后更新数据
var getController = Get.put(ValueController());
getController.updateValue();
///使用了依赖管理技术获取实例并且更新数据
// Get.find<ValueController>().updateValue();

上面示例代码完全按照前面小节中的实现思路来编写,大家重点关注一下数据模型类的写法,GetBuilder生成子组件方法以及通过数据模型对象来更新数据的方法。我在
这里就不演示程序的运行结果了,建议大家亲自动手去实践,把更新数据的方法封装到按钮中,然后点击按钮就可以看到页面中的数据被更新了。

4. 内容总结

最后,我们对本章回中的内容做一个全面总结:

  • Get包中通过GetBuilder和GetxController来实现状态管理功能,实现的思路和Provider包相似,只是实现细节不同;
  • Get包中的状态管理使用了依赖管理技术,因此不需要专门设置providers,而且获取数据模型对象也比较方便,这些功能优于Provider包;
  • Get包中的状态管理在性能上优于Provider包,不过这是官方文档的介绍,我没有做过具体的性能分析;
    看官们,与"使用get进行状态管理"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

标签:状态,另外,管理,数据,更新,GetBuilder,组件,方法,数据模型
From: https://blog.csdn.net/talk_8/article/details/140783041

相关文章

  • vue项目引入live2d保姆级教程--web端、多种方法
    一、自建live2d运行1、选择SDK——live2d Cubism SDK (1)链接:Live2DCubismSDK|Live2DCubism     打开网站,它长这样:(2)选择web,到下个页面(3)下载勾选同意,填写邮箱,点击下载,得到一个压缩包注意:如果你需要完整的的SDK按上文来就行,实际这篇文章主要用到内容是c......
  • CentOS 7 yum无法使用解决方法Could not retrieve mirrorlist http://mirrorlist.cent
    在centos7中使用yum命令事后报错:LoadingmirrorspeedsfromcachedhostfileCouldnotretrievemirrorlisthttp://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stockerrorwas14:curl#6-"Couldnotresolvehost:mirrorlist.centos.org;......
  • 线程参数传递 同一个结构体指针,并且要传递id(0-xx)的方法
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、代码示例?总结前言提示:这里可以添加本文要记录的大概内容:线程参数传递同一个结构体指针,并且要传递id(0-xx)的方法在创建线程时候可能会遇到不仅要传递全局唯一的结构体指针给线程,还......
  • 决策树节点分裂:探索不同的标准与方法
    决策树节点分裂:探索不同的标准与方法决策树是一种广泛用于分类和回归任务的机器学习算法。其核心思想是通过一系列简单的规则(即节点分裂)将数据集划分为不同的子集,直到满足某种停止条件为止。在节点分裂过程中,选择最优的分裂标准和方法是构建高效决策树的关键。本文将详细介......
  • ansible实战__使用yum方法安装nginx
    目录结构[root@masteryum_install_nginx]#tree.├──CentOS-Base.repo└──nginx_install.yaml如果yum源有问题需要建CentOS-Base.repo文件,没有则不需要报错信息可参考如下链接:CentOS-Base.repo文件内容#CentOS-Base.repo##Themirrorsystemusesthecon......
  • Python中清空list的几种方法
    本文介绍清空list的四种方法,以及list=[]和list.clear()在使用中的区别(坑)。1、使用clear()方法lists=[1,2,1,1,5]lists.clear()print(lists)>>>[]2、重新初始化列表:初始化该范围内的列表,初始化列表没有值,即大小为0的列表lists=[1,2,1,1,5]lists=[]print......
  • python找出字典中value最大值的几种方法
    假设定义一字典,m={"a":3,"e":6,"b":2,"g":7,"f":7,"c":1,"d":5},在不知道key的情况下如何找出字典中value最大的所有key-value对?下面讨论几种方法。1)通过m.values()和max()函数第一步,通过max()函数找到字典中的value最大值。max(m.values())结果为7第二步,再通......
  • 2024年必备技能:小红书笔记评论自动采集,零基础也能学会的方法
    摘要:面对信息爆炸的2024年,小红书作为热门社交平台,其笔记评论成为市场洞察的金矿。本文将手把手教你,即便编程零基础,也能轻松学会利用Python自动化采集小红书笔记评论,解锁营销新策略,提升个人竞争力。一、引言:为什么选择小红书数据采集?在小红书这片内容营销的热土上,笔记评论蕴......
  • 小红书笔记评论采集全攻略:三种高效方法教你批量导出
    摘要:本文将深入探讨如何利用Python高效采集小红书平台上的笔记评论,通过三种实战策略,手把手教你实现批量数据导出。无论是市场分析、竞品监测还是用户反馈收集,这些技巧都将为你解锁新效率。一、引言:小红书数据金矿与采集挑战在社交电商领域,小红书凭借其独特的UGC内容模式,积累......
  • 海康网络摄像头直连电脑、激活方法记录
    设备列表:海康威视网络摄像机型号:DS-2CD3T46WDA4-L海康威视12V2A的户外电源、网线电脑/工作站:戴尔Precision7920塔式工作站(有两个RJ-45以太网接口)(Win10系统)海康威视12V2A的户外电源一、硬件连接摄像机使用12V2A的户外电源供电,并使用网线将相机和电脑直连。硬件连接......