flutter getx(Flutter状态管理--GetX的简单使用)

2024-06-04 08:13:26 2

flutter getx(Flutter状态管理--GetX的简单使用)

本文目录

Flutter状态管理--GetX的简单使用

一、前言 Flutter开发,就需要对各种状态的管理,就是在请求数据的时候需要实时变化,各种交互变化等,在没有使用GetX之前使用Provider,用Provider的时候觉得真香,挺方便的,需要刷新的时候直接 notifyListeners(); 用了GetX之后觉得Provider太繁琐了。这边介绍下GetX的使用以及常用的方法。 二、 GetX GetX 是 Flutter 上的一个轻量且强大的解决方案:高性能的状态管理、智能的依赖注入和便捷的路由管理。 1、相关优势: 三、使用 1、第一步 引入get 2、第二步 修改入口、配置路由 3、路由 Routes类 Pages类 4、状态管理 我一般一个page对应一个controller, controller来处理逻辑,控制page. 简单使用 5、依赖注入 依赖注入也是我喜欢的,可以减少很多工作。 第一步 第二步 6、跨页面交互 7、黑暗模式 可以参考前期写的博客。 黑暗模式的适配

getx的controller是怎么销毁的

getx可以做到通过页面的退出自动控制controller的销毁,那么他是怎么做到的呢

当我们使用getx的路由套件时,可以看到,他的每个跳转方法都使用了自定义的 GetPageRoute 。 在 GetPageRoute 中对于此次的问题,我们需要关注的是两个方法

嗯,这里给传了一个 reference 给了 Get.reference ,这个 reference 看一下是什么玩意。。

dispose ,route退出流程里调用的方法。在这里面Get做了两件事,我们主要关注第一件事, removeDependencyByRoute() 参数是上面的页面标识。

这个方法里,我们可以看到调用了 GetInstance 的 delete 方法,这个方法就是销毁controller的方法,但是为什么呢?为啥传一个页面标识就能删除到对应的controller呢。我们接着看

我们都知道我们在使用getx的controller时,一定会有两个操作,一个是 Get.put() ,一个是 Get.find() 让我们一个一个的看一下

Get.put 的本质其实是将我们传入的实例,根据类 S 和 tag 创建一个 key ,然后以key和实例作为键值对存入了全局的map中(此处是简单理解,看也看得出来不是直接传实例了)

Get.find 方法很简单的只是通过类 S 和 tag 去全局map中找一个实例返回出去, 但是 返回之前,还做了一步操作,即 _initDependencies 。

看到没,就在下面Get.reference,之前在GetPageRoute的页面构建之前赋值了最近的页面,然后在此处用来做routesKey的value和前面的controller的key值进行绑定。

这也是得益于flutter是个单线程模型,才能这样无脑的通过这种方式传值。其实getx中有不少让人觉得神奇的地方都是利用了单线程的优势,比如Obx的自动刷新,也是在Obx的build方法和Rx的value的get方法之间通过一个全局指针来进行传值。

flutter 使用Getx提示错误

新手最近在使用Getx做状态管理, 在使用中遇到问题, 随手记录下, 提示错误: GET the improper use of a getx has been detected you should only use getx or obx for the specific widget that will be updated. if you are seeing this error, you probabaly did not insert any observable variables into GetX/Obx... 其实提示很明显, 就是Obx()中组件没用到controller内容, 比如Obx(()=》Text("123")), 这里面Obx没有用到GetxController的对象, 就会报这个错误,如果改成Obx(()=》Text(controller.content)), 就可以了

GetX实践 2022-05-18 周三

GetX是一个状态管理框架,可以替代Bloc,fish_redux,fluro等框架,性价比很高。 pubspec.yaml中添加一行 一个页面,本来只需要一个有状态或者无状态widget。使用Getx之后,可以分为state,logic,view三个不同的文件,各司其职。 这个可以理解为状态管理,相当于MVC中的Model层,是专门用来管理数据的。 逻辑层,相当于MVC中的Controller,处理业务逻辑 视图层,相当于MVC中的View,进行显示。 这个和原来的widget基本上差不多。 大佬手把手教你优雅地进行Flutter开发(GetX值得一试)

Flutter遇到的坑

最近写了一个LoadingView用于页面的网络加载,使用的是StatefulWidget。由于项目是使用的Get对状态进行控制的,所以在GetBuild中对Loading进行刷新。但在使用中发现rebuild LoadingView没有刷新状态,看参数是在Widget中更新了的。 后续定位发现,StatefulWidget在rebuild的时候,并不会重新执行initState方法,而只会执行build方法,这也符合state和widget的一对多原则。知道问题所在,修改也非常简单。去掉state中的status变量,使用widget中的initStatus值即可。 在此记录,对于Get的一些注意点。 目前项目中对Widget进行了内嵌LoadingView的BaseWidget封装,对GetxController进行了LoadingStatus状态操作的BaseController封装。发现在第二个继承了BaseWidget的页面中,对绑定的Controller进行update操作无效。 阅读源码后发现,GetBuilder的global参数默认是true,在没有指定tag的情况下,会根据controller作为key进行全局map,若第二次调用时,会先通过Controller进行get,正好我们的BaseWidget使用的是BaseController导致全局只有一个Controller从而导致第二个页面无法刷新问题。我们只需要在基类中将global改为false,直接使用init的controller即可。 目前在做App的主题色切换功能,发现在部分主题色下,Appbar的标题和Action自动变成深色,查阅资料后得知,由于色值的computeLuminance值过大导致Brightness自动为Brightness.light。 知道原因后就好办了,通过设置ThemeData里面的Brightness类型的参数为Brightness.dark(注意我们只需要Appbar为深色,brightness参数控制的是整个页面,不修改)。经验证,primaryColorBrightness控制Appbar的标题和action,修改即可。

flutter 完全使用GetX 主题切换 以及 自创建Widget的颜色随主题变化方案

这篇将会解决手动切换主题以及跟随手机切换主题来更新UI(包括自己创建的Widget) 主题切换有个问题,就是如果是我们自定义或者在 build() 自己创建的部件是不会随着系统的主题切换而发生主题色变化的(实际测试中,如果页面在顶层(没有被push)切换主题并不会触发 build() 方法,(push之后的页面切换系统主题是可以触发 build() 的,而且会频繁触发好多次...),既然无法通过重新 build 更新组件的主题色,那么我们在切换主题后,强制触发整个app的 build() 就可以了)

flutter getx(Flutter状态管理--GetX的简单使用)

本文编辑:admin

本文相关文章:


flutter getx(Flutter遇到的坑)

flutter getx(Flutter遇到的坑)

本文目录Flutter遇到的坑flutter 使用Getx提示错误GetX实践 2022-05-18 周三flutter 完全使用GetX 主题切换 以及 自创建Widget的颜色随主题变化方案Flutter状态管理--GetX的简单使用g

2024年7月19日 04:56

flutter getx(flutter 使用Getx提示错误)

flutter getx(flutter 使用Getx提示错误)

本文目录flutter 使用Getx提示错误Flutter遇到的坑getx的controller是怎么销毁的Flutter状态管理--GetX的简单使用flutter 完全使用GetX 主题切换 以及 自创建Widget的颜色随主题变化方案

2024年6月25日 00:02

更多文章:


手机360压缩软件官方下载(解压软件哪个好)

手机360压缩软件官方下载(解压软件哪个好)

这篇文章给大家聊聊关于手机360压缩软件官方下载,以及解压软件哪个好对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录解压软件哪个好小米平板怎么下载360压缩器压缩解压软件哪个好用什么压缩软件好用360压缩软件手机版怎么下载手机

2024年6月25日 08:12

正则表达式空格(求主:正则表达式空格隔开字符串怎么写)

正则表达式空格(求主:正则表达式空格隔开字符串怎么写)

本文目录求主:正则表达式空格隔开字符串怎么写js正则表达式怎么匹配英文和空格JavaScript正则表达式匹配空格正则表达式数字前加空格正则表达式如何表示若干个空格我想用正则表达式过滤掉空字符串,用“”方法没用,求解如果一段文本是正则表达式

2024年6月4日 12:13

下载internet explorer(在哪里可以官方下载internet explorer,哪个版本的ie最好)

下载internet explorer(在哪里可以官方下载internet explorer,哪个版本的ie最好)

本文目录在哪里可以官方下载internet explorer,哪个版本的ie最好如果不小心把电脑上的internet explorer删除了怎么办internetexplorer如何下载怎样下载internet explorer电脑上下载i

2023年6月18日 08:40

数学公式编辑(Word中使用公式编辑器编辑数学公式)

数学公式编辑(Word中使用公式编辑器编辑数学公式)

本文目录Word中使用公式编辑器编辑数学公式用word如何编辑数学公式如何在Word中使用公式编辑器编辑数学公式Word数学公式编辑器(MathType)下载及使用教程有没有好的数学公式编辑器app,最好能处理上标,下标的怎样解决word2

2024年6月21日 13:44

魔怨国庆版隐藏英雄(魔怨国庆版的隐藏英雄密码多少)

魔怨国庆版隐藏英雄(魔怨国庆版的隐藏英雄密码多少)

本文目录魔怨国庆版的隐藏英雄密码多少魔兽RPG部分地图隐藏英雄密码谁有啊`如题 谢谢了魔怨国庆版攻略魔怨国庆版隐藏英雄林轩儿的剑如何取得,拿剑的那个地方怎样进去啊魔怨春节版的隐藏英雄天葬剑怎么选《魔兽争霸》中,两边打起来的时候,一方英雄全死

2024年6月6日 08:17

qq隐身查看器(如何知道对方qq是否隐身)

qq隐身查看器(如何知道对方qq是否隐身)

本文目录如何知道对方qq是否隐身QQ上对方隐身用什么软件能知道他在线现在有一个瓜瓜QQ隐身查看器,我试用了一天还行,但后面再用要收费,请问这个软件安全吗有人知道吗如何查看隐身qq如何知道QQ对方是否隐身在线QQ怎么看别人隐身呢谁知到如何查看

2024年7月8日 18:18

qq手机令牌(QQ令牌和手机令牌是什么东西)

qq手机令牌(QQ令牌和手机令牌是什么东西)

本文目录QQ令牌和手机令牌是什么东西QQ手机令牌是干嘛的手机QQ安全中心手机令牌在哪里QQ的手机令牌怎么设置华为c8810怎么样下载QQ的手机令牌QQ手机令牌怎么弄qq手机令牌最新通用版手机下载网址QQ令牌和手机令牌是什么东西1、QQ令牌是

2024年7月16日 04:53

安徽基础教育资源平台(安徽基础教育资源应用平台,我登陆密码忘记了咋办)

安徽基础教育资源平台(安徽基础教育资源应用平台,我登陆密码忘记了咋办)

大家好,今天小编来为大家解答以下的问题,关于安徽基础教育资源平台,安徽基础教育资源应用平台,我登陆密码忘记了咋办这个很多人还不知道,现在让我们一起来看看吧!本文目录安徽基础教育资源应用平台,我登陆密码忘记了咋办安徽省基础教育资源应用平台如何

2024年6月30日 13:59

风车动漫app下载(风车动漫官方入口到底是哪个)

风车动漫app下载(风车动漫官方入口到底是哪个)

大家好,如果您还对风车动漫app下载不太了解,没有关系,今天就由本站为大家分享风车动漫app下载的知识,包括风车动漫官方入口到底是哪个的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录风车动漫官方入口到底是哪个风车动

2024年7月13日 07:51

37网页游戏平台官网(街机三国背包满了怎么办)

37网页游戏平台官网(街机三国背包满了怎么办)

这篇文章给大家聊聊关于37网页游戏平台官网,以及街机三国背包满了怎么办对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录街机三国背包满了怎么办微端一直进不去,停留在加载页面!网页游戏贪玩平台和37平台有什么区别游戏进不去怎么解决

2024年7月14日 13:10

英雄联盟商城官网(英雄联盟商城在哪)

英雄联盟商城官网(英雄联盟商城在哪)

其实英雄联盟商城官网的问题并不复杂,但是又很多的朋友都不太了解英雄联盟商城在哪,因此呢,今天小编就来为大家分享英雄联盟商城官网的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!本文目录英雄联盟商城在哪英雄联盟美服官网多少英

2024年9月1日 16:05

仙剑奇侠传五手游攻略(仙剑奇侠传五攻略_就问战侠有多强《仙剑奇侠传五》战侠攻略)

仙剑奇侠传五手游攻略(仙剑奇侠传五攻略_就问战侠有多强《仙剑奇侠传五》战侠攻略)

各位老铁们好,相信很多人对仙剑奇侠传五手游攻略都不是特别的了解,因此呢,今天就来为大家分享下关于仙剑奇侠传五手游攻略以及仙剑奇侠传五攻略_就问战侠有多强《仙剑奇侠传五》战侠攻略的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看

2024年8月29日 10:35

客户资料管理系统(好用的客户管理系统有哪些)

客户资料管理系统(好用的客户管理系统有哪些)

这篇文章给大家聊聊关于客户资料管理系统,以及好用的客户管理系统有哪些对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录好用的客户管理系统有哪些公司要使用客户关系管理系统(CRM)需要怎么做客户信息管理系统是什么crm客户管理系统

2024年7月24日 05:13

中兴x876(中兴X876支持电信3G吗)

中兴x876(中兴X876支持电信3G吗)

本文目录中兴X876支持电信3G吗中兴x876手机解锁图案忘了怎么办中兴X876如何修改分辨率中兴X876支持电信3G吗你好,中兴X876是GSM/WCDMA制式,而电信的网络是CDMA/CDMA2000制式,由于硬件上的制式不兼容,所以X

2024年6月21日 05:38

智聘人才网招聘网(招聘网站有哪些)

智聘人才网招聘网(招聘网站有哪些)

大家好,关于智聘人才网招聘网很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于招聘网站有哪些的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文目录招聘网站有哪些

2024年6月29日 12:58

qq炫舞紫钻官网登陆(QQ炫舞紫钻开通的网址是多少)

qq炫舞紫钻官网登陆(QQ炫舞紫钻开通的网址是多少)

大家好,qq炫舞紫钻官网登陆相信很多的网友都不是很明白,包括QQ炫舞紫钻开通的网址是多少也是一样,不过没有关系,接下来就来为大家分享关于qq炫舞紫钻官网登陆和QQ炫舞紫钻开通的网址是多少的一些知识点,大家可以关注收藏,免得下次来找不到哦,下

2024年7月23日 19:50

金蝶k3软件哪里下载?怎么下载金蝶财务软件免费版

金蝶k3软件哪里下载?怎么下载金蝶财务软件免费版

这篇文章给大家聊聊关于金蝶下载,以及金蝶k3软件哪里下载对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录金蝶k3软件哪里下载怎么下载金蝶财务软件免费版金蝶如何下载凭证金蝶盗版怎么下载金蝶系统怎么下载金蝶k3wise在哪里下载手

2024年7月22日 20:04

酷狗旧版本下载2016(求个以前版本的酷狗音乐)

酷狗旧版本下载2016(求个以前版本的酷狗音乐)

本篇文章给大家谈谈酷狗旧版本下载2016,以及求个以前版本的酷狗音乐对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录求个以前版本的酷狗音乐我

2024年8月27日 02:35

安全管理体系(安全管理体系)

安全管理体系(安全管理体系)

本篇文章给大家谈谈安全管理体系,以及安全管理体系对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录安全管理体系安全生产管理体系都包括哪些内容安

2024年5月27日 05:16

apple id密码要求(Apple ID的密码要怎么设置啊求格式)

apple id密码要求(Apple ID的密码要怎么设置啊求格式)

本文目录Apple ID的密码要怎么设置啊求格式apple ID 的密码只能大写字母+小写字母+数字吗Apple ID的密码要怎么设置啊求格式工具/原料:操作手机:苹果手机、操作系统:iOS13.5、操作软件:设置方法/步骤:1、解锁手机点

2024年3月22日 03:00

近期文章

本站热文

iphone vpn设置(ios设置vpn快捷开关)
2024-07-22 15:01:12 浏览:2334
windows12正式版下载(操作系统Windows Server 2012 R2,在哪能下载到,公司用的)
2024-07-20 17:26:53 浏览:1731
java安装教程(win10如何安装JAVA)
2024-07-19 19:55:49 浏览:1156
client mfc application未响应(每次进cf就提示client MFC Application未响应该怎么办啊!急急急)
2024-07-20 11:15:58 浏览:1152
标签列表

热门搜索