首页
学习
活动
专区
圈层
工具
发布

Flutter 系列之GetX的学习(1) --> 状态管理

依赖管理: GetX 提供了一种智能方法来管理 Flutter 应用程序中的依赖项,例如视图控制器。GetX 将从内存中删除任何当前未使用的控制器。..., 并且在UI部分已经实例化控制器,能够调用控制器的方法, 那么下面我们将控制器里面的数据进行一个UI展示,并且希望数据更新的时候UI也能得到改变, 就和react里面使用setState,vue里面的...Get.find() 方法,GetX 提供的依赖注入机制的一部分,允许你在需要的地方轻松访问已创建的控制器。...onInit();和onClose();方法就是为此而创建的,它们会在Controller被创建,或者第一次使用时被调用,这取决于你是否使用Get.lazyPut。...例如,如果你想调用你的API来填充数据,你可以忘掉老式的initState/dispose方法,只需在onInit中开始调用api,如果你需要执行任何命令,如关闭流,使用onClose()来实现。

91310

Flutter GetX使用---简洁的魅力!

当你定义了一个响应式变量,该响应式变量改变时,包裹该响应式变量的Obx()方法才会执行刷新操作,其它的未包裹该响应式变量的Obx()方法并不会执行刷新操作,Cool!...这个页面就是重点了 logic 将演示怎么调用前一个页面的事件 怎么接收上个页面数据 请注意,GetxController包含比较完整的生命周期回调,可以在onInit()接受传递的数据;如果接收的数据需要刷新到界面上...页面控制器,全被初始化问题 大家使用PageView,添加PageView页面,PageView页面用GetX构成,会发现所有的PageView页面控制器全被初始化了!...并不是切换到某个页面时,对应页面的控制器才被初始化!...PageView切换到某个页面的时候,才会调用对应Page页面的build方法;对于PageView页面,控制器的注入过程,不能写在类中了,需要将其移入到build方法中初始化。

9.1K103
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

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

    一、前言 Flutter开发,就需要对各种状态的管理,就是在请求数据的时候需要实时变化,各种交互变化等,在没有使用GetX之前使用Provider,用Provider的时候觉得真香,挺方便的,需要刷新的时候直接...这边介绍下GetX的使用以及常用的方法。 二、 GetX GetX 是 Flutter 上的一个轻量且强大的解决方案:高性能的状态管理、智能的依赖注入和便捷的路由管理。...方便至极 8、依然注入 三、使用 1、第一步 引入get dependencies: flutter: sdk: flutter ​ cupertino_icons: ^1.0.2...() { // TODO: implement onInit super.onInit(); editingController = TextEditingController(...只要注入了控制器。在其他界面就能拿到A界面的数据。

    4.2K21

    Flutter快速开发——列表分页加载封装

    ,因本篇文章主要介绍列表分页的封装,不会过多介绍 GetX,关于 GetX 更多使用及介绍可参考以下文章: • Flutter之GetX集成及使用详解 • Flutter 通过源码一步一步剖析 Getx...依赖管理的实现 • Flutter之GetX依赖注入使用详解 • Flutter之GetX依赖注入tag使用详解 具体实现 前面介绍了对于列表分页加载的封装整体分为三层:State、Controller...refreshData 、loadMoreData 方法顾名思义是下拉刷新和上拉加载更多,在对应事件中调用,其内部实现调用 _loadData 加载数据,加载完成后调用 refreshController...的刷新完成或加载完成, refreshData 中加载数据之前还调用了初始化分页数据的 initPaging 方法,用于重置分页参数和数据。...方法最后调用了 Controller 的 update 方法刷新界面数据。

    7.1K32

    Flutter之GetX依赖注入tag使用详解

    本文主要介绍 GetX 依赖注入中 tag 的作用和使用详解。...作用 前面几篇文章介绍了 GetX 依赖注入的使用以及通过源码剖析了依赖注入的原理: •《Flutter应用框架搭建(一)GetX集成及使用详解》•《Flutter 通过源码一步一步剖析 Getx 依赖管理的实现...》•《Flutter之GetX依赖注入使用详解》 通过源码得知,GetX 依赖注入中 tag 的主要作用是用于区分相同类型依赖的不同实例。...GetX 依赖注入是通过 Map 缓存依赖关系,默认使用注入依赖的类型名称作为 key 进行缓存,当传入 tag 不为空时则使用类型名称 + tag 组合作为缓存的 key。...: class NewsController extends GetxController{ @override void onInit() { super.onInit();

    2.6K31

    Flutter 数据持久化存储之Hive库

    基于这个场景我们就可以去设计UI了,我们尽量在一个页面去解决,更直观一些(PS:我也是偷一个懒)。   ...控制器我们就放到GetX中使用,在page包下新建一个hive_controller.dart,代码如下所示: import 'package:flutter/material.dart'; import...这里面就需要用到baseEdit去构建两个输入框,因此我们加上GetX,在page包下新建一个hive_controller.dart,代码如下所示: import 'package:flutter/material.dart...③ CURD   在进行CURD时,我们将代码写在GetxController中,提供相关的函数进行操作,下面我们修改一下HiveController中的代码: import 'package:flutter...如下图所示:   在列表的Item中我们除了显示用户的名称和年龄之外还有两个功能按钮,分别用于修改和删除,如下图所示:   针对于删除很简单之后调用控制器里面写好的函数就可以了,删除之后列表会自动刷新的

    1.6K01

    【喵咪专场】还不来领取你的小可爱吗?😍

    SplashController extends GetxController { final SplashModel splashModelState = SplashModel(); } 复制代码 在view中使用控制器...定义一个init方法用于初始化: static Future init() async{ // 运行初始 WidgetsFlutterBinding.ensureInitialized(...animationController; } 复制代码 然后再初始化动画(记得销毁哦): @override void onInit() { super.onInit(); animationController...中缓存: @override void onInit() { super.onInit(); _precacheImage(splashModelState.Background,...AssetImage(imageUrl), context); } 复制代码 4.最后: 上文说到没有分析的原因是因为本人遇到一件很重要的事,一件在绝望中寻找希望的事,也许没有了周末,没有了假期,不能在编写Flutter

    73120

    Flutter 多语言、主题切换之GetX库

    库前面我们讲述了状态管理的使用,实际上GetX是非常强大的,功能很多,本篇文章中我们将介绍GetX的多语言切换和主题切换等功能。...,下面在my_home文件夹下创建一个my_home.dart,里面装载我们前面写好的两个页面,完成切换的工作,代码如下所示: import 'package:flutter/material.dart...当我们第一次打开App时,默认是跟随系统语言,而我们切换为英文之后再重新打开App,发现没有变化,这是因为我们没有更改这个locale的属性值,因此就涉及到持久化存储了,你想到了什么呢?...,主要的内容就是一个列表,用于点击Item切换语言项,切换之后返回上一个页面,同时传值过去, ⑥ mine.dart 最后我们改动一下mine.dart,如下所示: import 'package:flutter...② 更改主题   然后在settings下创建对应更换主题页面,首先我们创建一个theme_setting_controller.dart,里面代码如下所示: import 'package:flutter

    2.2K01

    Flutter 状态管理之GetX库

    Flutter 状态管理之GetX 前言 正文 一、创建项目 二、状态组件 三、状态更新UI 四、GetX库 ① 添加依赖 ② 局部刷新 ③ 全局刷新 五、源码 前言   Flutter使用的是声明式UI...每当HomePage的状态发生变化时,Flutter会调用_HomePageState类中的build方法来构建最新的UI,下面我们再来看_HomePageState,代码如下所示: class _HomePageState...'package:get/get.dart'; ///Home页面控制器 class HomeController extends GetxController { RxString test =...Get.put(HomeController()),得到控制器对象,然后在Text中通过控制器得到里面的值,同样可以调用里面的方法,这样我们就将业务和UI分离了。...,最后调用update()进行全局更新,注意update()方法是结合GetBuilder使用的,下面我们改写home_page中的代码,如下所示: import 'package:flutter/material.dart

    3.2K01

    Flutter中值得收藏的几个包

    intro_views_flutter 这是一个示例 Flutter 插件,用于在用户首次使用您的app时吸引他们,因此得名 onboarding。...img 2.path_provider:^2.0.10 用于查找文件系统上常用位置的 Flutter 插件。支持安卓、iOS、Linux、macOS 和 Windows。并非所有平台都支持所有方法。...7.getx img GetX 是 Flutter 的一个超轻且强大的解决方案。它结合了高性能状态管理、智能依赖注入和快速实用的路由管理。 GetX 有 3 个基本原则。...无论您想做什么,GetX 总有一种更简单的方法。它将节省开发时间,并提供您的应用程序可以提供的最大性能。 通常,开发人员应该关注从内存中删除控制器。...默认情况下,依赖加载也是惰性的。

    1.8K31

    Flutter之GetX依赖注入使用详解

    前面用两篇文章介绍了 GetX 的使用和通过源码剖析了 GetX 依赖注入实现原理,了解 GetX 依赖注入原理后,本篇文章将通过不同的注入方法和参数设置详细介绍 GetX 依赖注入的使用。...方法注入依赖对象,然后调用按钮触发 find 获取依赖。...是因为在页面销毁时回收有个前提是使用 GetX 的路由管理页面,使用官方的 Navigator 进行路由跳转时页面销毁不会触发回收依赖。...这就验证了使用 GetX 路由跳转时,使用 put 默认注入依赖时,当页面销毁依赖也会被回收。...总结 通过代码调用不同的注入方法,设置不同的参数,分析输出日志,详细的介绍了 put、 lazyPut、 putAsync、 create 以及 permanent、 fenix 参数的具体作用,开发中可根据实际业务场景灵活使用不同注入方式

    2.1K31

    慕课甄选-Flutter零基础极速入门到进阶实战

    ),课程内容均来自 “真实项目踩坑总结”—— 比如讲 “网络请求” 时,会带你避开 “请求超时未处理”“token 过期未刷新” 等企业常见问题,而非只讲 “dio 库的基础用法”;“极速入门” 设计,...”“多页面数据同步”),重点学 “GetX 的状态管理、路由管理、依赖注入”,避免 “Provider 嵌套过深” 的问题;▶ 实战案例:开发 “用户登录系统”,实现 “登录成功后保存用户信息到 GetX...全局状态,所有页面可获取用户名;退出登录时清除状态,自动跳转回登录页”。...监听状态变化,替代手动调用刷新”)。...功能开发(12 天)登录 / 注册模块(2 天):实现 “手机号验证码登录(调用短信接口)、注册(校验手机号格式 + 设置密码)、自动登录(存储 token,启动 APP 时校验)”;好友列表模块(2

    51610

    Flutter之GetX集成及使用详解

    0.GetX 集成 添加依赖 在 pubspec.yaml 文件中添加 GetX 的依赖,如下: dependencies: flutter: sdk: flutter get: ^4.5.1...,大部分情况下不需要手动调用该方法,GetX 内部会自动处理,当不需要时自动移除 Get.delete(); 3.路由管理 路由也是 Flutter 项目重要的一环...,在 Flutter 中进行页面跳转就是通过路由实现,GetX 提供了 普通路由 和 别名路由 。...路由进入页面时,会自动调用 dependencies 方法, 可以在这里进行依赖关系的注册等。...GetUtils GetX 还提供了很多工具方法,可以使用 GetUtils 调用, 比如判断是否是邮箱,判断文件格式类型等,详细见下图: 除此之外 GetX 还提供了一些扩展方法: //检查应用程序在哪个平台上运行

    11.4K46

    从零开始学 Flutter:状态管理入门之 setState 与 Provider

    比如: 按钮点击后显示的“已点击”/“未点击”文本; 输入框中用户输入的内容; 列表加载完成后展示的数据列表; 开关组件的“开启”/“关闭”状态。...当我们调用 setState(() { ... }) 时,会执行括号内的状态修改逻辑,之后 Flutter 会自动调用 build 方法,根据新的状态重新绘制 UI。...2.2 实战案例:点击按钮切换文本 我们用一个最简单的案例演示 setState 的用法:创建一个页面,点击按钮后,文本从“未点击”变为“已点击”,再次点击则切换回去。...会重新构建整个组件树(当前 StatefulWidget 及其所有子组件),当组件复杂时,会造成不必要的性能消耗; 不适合复杂状态逻辑:当状态修改依赖多个数据源,或需要跨页面共享时,setState...context, clickState, child) { return ElevatedButton( onPressed: () { // 调用状态模型中的方法修改状态

    28210

    在使用 Playwright 进行自动化测试时,一个非常实用的技巧是利用wait_for_load_state()方法精确控制页面加载状态,这能有效避免因页面未

    在使用 Playwright 进行自动化测试时,一个非常实用的技巧是利用wait_for_load_state()方法精确控制页面加载状态,这能有效避免因页面未完全加载而导致的元素定位失败。...例如,当你需要等待页面完全加载(包括所有资源)时,可以这样使用:python运行from playwright.sync import sync_playwrightwith sync_playwright..."https://example.com") # 等待页面完全加载完成 page.wait_for_load_state("load") # "load"表示等待window.onload...: {title}") browser.close()这个技巧的优势在于:提供了更精细的加载状态控制,比简单的time.sleep()更高效三种状态(load、domcontentloaded...、networkidle)可根据实际需求选择减少因页面加载时序问题导致的测试不稳定在处理 SPA(单页应用)或加载缓慢的页面时,合理使用这个方法能显著提高测试的可靠性。

    39610

    《深入浅出Dart》状态管理

    以下是一些常用的状态管理方案: setState 对于简单的小型应用程序或简单的状态管理需求,可以使用Flutter内置的setState方法。...MyWidget通过Provider.of方法获取CounterModel的实例,并在按钮点击时调用incrementCounter方法来更新计数器。 3....MyWidget通过ConsumerWidget来订阅counterProvider,并在按钮点击时调用incrementCounter方法来更新计数器。...MyWidget通过Get.put方法将CounterController的实例放入全局依赖中,并在按钮点击时调用incrementCounter方法来更新计数器。...参考资料 要深入了解Dart语言和Flutter中的状态管理,可以参考以下官方资源和文档: Flutter状态管理介绍 Provider官方文档 Riverpod官方文档 GetX官方文档 BLoC官方文档

    58910

    Flutter一个轻量且强大的插件:GetX 之状态管理

    GetX是 Flutter 上的一个轻量且强大的解决方案:高性能的状态管理、智能的依赖注入和便捷的路由管理。GetX官方以低功能、高性能、低耦合为基本原则,以轻量级的方式,给开发者提供众多功能。...响应式状态管理器 响应式编程很多框架都有应用,比如vue.js,这里Flutter中使用GetX插件可以让响应式编程编程很简便。通过计数器demo来看看。...AppBar( // 使用Obx(()=>每当改变计数时,就更新Text。...title: Obx(() =>Text('Click:${c.count}')), elevation: 0.0, ), 按钮触发自增方法,每次count+1 floatingActionButton...下一篇带大家了解GetX的国际化,更多关于GetX的内容,后续会继续发出,Demo地址:https://github.com/Qson8/flutter_getx

    1.8K20
    领券