事实上,Flutter目前已有的状态管理,如rxdart、BLoC、fluter_redux、provider、GetX等,都离不开对stream流进行封装,再加上对Flutter InheritedWidget的封装演化出StreamBuilder、BlocBuilder等布局组件,从而达到无需setState就能实时更新视图的效果。Flutter状态管理的演变 BLoC BLoC是谷歌提出的一种设计模式,利用stream流的方式...
GetX是基于ReactiveX思想的一款响应式状态管理框架,相比于BLoC,它有如下优势: 相比于BLoC,GetX的工程结构更简单,需要维护的文件更少; BLoC无法实现真正的跨页面数据状态管理(全局BLoC可部分实现,但维护起来较麻烦); 内部实现了路由管理,简单易用; GetX插件的使用 1)在pubspec.yaml中引入getX库,执行flutter pub get;...
把整篇文章写完后,我马上把自己的一个demo里面所有Bloc代码全用GetX替换,且去掉了Fluro框架;感觉用Getx虽然会省掉大量的模板代码,但还是有些重复工作:创建文件夹,创建几个必备文件,写那些必须要写的初始化代码和类;略微繁琐,为了对得起GetX给我开发带来的巨大便利,我就花了一些时间,给它写了一个插件!上面这重复...
把整篇文章写完后,我马上把自己的一个demo里面所有Bloc代码全用GetX替换,且去掉了Fluro框架;感觉用Getx虽然会省掉大量的模板代码,但还是有些重复工作:创建文件夹,创建几个必备文件,写那些必须要写的初始化代码和类;略微繁琐,为了对得起GetX给我开发带来的巨大便利,我就花了一些时间,给它写了一个插件!上面这重复...
GetX实现了动态路由传参,也就是说直接在命名路由上拼参数,然后能拿到这些拼在路由上的参数,也就是说用flutter写H5,直接能通过Url传值,OMG!可以无脑舍弃复杂的fluro了 实现了全局BuildContext 国际化,主题实现 如果深度使用过Provider,Bloc这类依赖InheritedWidget建立起的状态管理框架;再看看GetX内部实现思想,就能发现,...
事实上,Flutter目前已有的状态管理,如rxdart、BLoC、fluter_redux、provider、GetX等,都离不开对stream流进行封装,再加上对Flutter InheritedWidget的封装演化出StreamBuilder、BlocBuilder等布局组件,从而达到无需setState就能实时更新视图的效果。Flutter状态管理的演变 ...
在反复的查阅官方文档后,使用一个全局Bloc的方式,实现了“伪”跨页面交互,详细可查看:flutter_bloc使用解析;fish_redux的广播机制是可以比较完美的实现跨页面交互的,我也写了一篇几万字介绍如何使用该框架:fish_redux使用详解,redux思想划分是比较细的,写起来会很费劲;最近尝试了GetX相关功能,解决了我的相当一部分...
此外,虽然GetX社区正在不断增长,但它还没有像Provider或Bloc那样广泛的接受度。如果你的项目不需要那么多功能,GetX可能会显得过于复杂。 Provider Provider是Flutter官方推荐的状态管理解决方案之一。它通过共享数据模型(通常是ChangeNotifier或其子类)来管理状态。Provider的主要优点是简单易用,而且与Flutter的架构非常契合。
现在,你需要做的就是使用Get.toNamed()来导航你的命名路由,不需要任何context(你可以直接从你的BLoC或Controller类中调用你的路由),当你的应用程序被编译到web时,你的路由将出现在URL中。 资源释放 关于GetxController的资源释放,这个栏目的内容相当重要!
在Flutter 的状态管理插件中,BLoC(Business Logic Component)非常受欢迎,事实上在 GitHub 上,BLoC 在众多的状态管理插件中的 Star 是最多的( 共7.8k,Provider 是3.9k,GetX 是4.6k)。这主要的原因是 BLoC 更多的是一种设计模式,按照这种设计模式可以转变为很多种状态管理实现。实际上在 pub 搜索 BLoC 会出现很多...