Flutter之GetX之路由管理
GetX之路由管理
GetX有一套完整的路由管理,并且不需要context上下文,API非常简洁
直接导航
导航到新的页面
Get.to(NextScreen());
返回,此方法可以用于关闭SnackBars、Dialogs、BottomSheets或任何你通常会用Navigator.pop(context)关闭的东西。
Get.back();
进入下一个页面并将上一个页面移除
Get.off(NextScreen());
进入下一个页面并将之前所有的路由移除
Get.offAll(NextScreen());
带参数
从A页面到B页面
Get.to(B(), arguments: "data")
在B页面接收参数
final data = Get.parameters
回传数据到A页面
Get.back(result: "result")
在A页面接收从B页面传回来的数据,因为Get.to本身是一个Future,可以通过await或者.then方法获取
final res = await Get.to(const WNEmptyPage());
或者
Get.to(const WNEmptyPage())?.then((value) { print(value); });
和原生API的对比
// 默认的Flutter导航
Navigator.of(context).push(
context,
MaterialPageRoute(
builder: (BuildContext context) {
return HomePage();
},
),
);
// 使用Flutter语法获得,而不需要context。
navigator.push(
MaterialPageRoute(
builder: (_) {
return HomePage();
},
),
);
// get语法 (这要好得多)
Get.to(HomePage());
别名导航
可以创建一个路由表,给每一个页面创建一个别名
通过在GetMaterialApp的getPage添加
void main() {
runApp(
GetMaterialApp(
initialRoute: '/',
getPages: [
GetPage(name: 'homePage', page: () => MyHomePage()),
],
)
);
}
也可以在onGenerateRoute中定义
onGenerateRoute: (settings) {
final args = settings.arguments;
switch (settings.name) {
case "homePage":
return CupertinoPageRoute(
builder: (BuildContext context) => MyHomePage(),
settings: settings);
}
}
此回调会带有一个setting参数,可以在里面获取对应路由的别名,传进来的参数等
使用就直接在之前的API上加上Named后缀
Get.to对应
Get.toNamed("/NextScreen");
Get.off对应
Get.offNamed("/NextScreen");
Get.offAll对应
Get.offAllNamed("/NextScreen");
如果找不到对应别名的路由,可能没有在路由表中没有注册,就可以在GetMaterialApp定义一个unknownPage
unknownRoute: GetPage(name: 'unknownPage', page: () => const UnknownPage())
或者是通过回调的方式
onUnknownRoute: (settings) {
return CupertinoPageRoute(
builder: (BuildContext context) => const UnknownPage(),
settings: settings);
}
传输数据也是差不多的
Get.toNamed("/NextScreen", arguments: 'Get is the best');
print(Get.arguments);
//Get is the best
Flutter之GetX之路由管理的更多相关文章
- Flutter 应用入门:路由管理
路由(Route)在移动开发中通常指页面(Page),这跟web开发中单页应用的Route概念意义是相同的,Route在Android中通常指一个Activity,在iOS中指一个ViewContro ...
- 6.2.初识Flutter应用之路由管理
路由管理 路由(Route)在移动开发中通常指页面(Page),这跟web开发中单页应用的Route概念意义是相同的,Route在Android中通常指一个Activity,在iOS中指一个ViewC ...
- flutter最简单轻量便捷的路由管理方案NavRouter
大家好,我是CrazyQ1,今天给大家推荐一个路由管理方案,用的非常不错的,叫nav_router. 项目地址是:https://github.com/fluttercandies/nav_route ...
- Flutter中的普通路由与命名路由(Navigator组件)
Flutter 中的路由通俗的讲就是页面跳转.在 Flutter 中通过 Navigator 组件管理路由导航.并提供了管理堆栈的方法.如:Navigator.push 和 Navigator.pop ...
- Flutter 中的基本路由
Flutter 中的路由通俗的讲就是页面跳转.在 Flutter 中通过 Navigator 组件管理路由导航,并提供了管理堆栈的方法.如:Navigator.push 和 Navigator.pop ...
- Flutter 中的普通路由、普通路由传值、 命名路由、命名路由传值
一.Flutter 中的路由 Flutter 中的路由通俗的讲就是页面跳转.在 Flutter 中通过 Navigator 组件管理路由导航.并提供了管理堆栈的方法.如:Navigator.push ...
- WebApp中的页面生命周期及路由管理
最近切换到一个新项目,使用的技术栈是Require+Backbone,鉴于对鞋厂webapp框架的了解,发现这个新项目有些缺陷,主要是单纯依赖Backbone造成的,也就是Backbone的好和坏都在 ...
- Springcloud Gateway 路由管理
Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开 ...
- vue路由管理-保留滚动位置功能、按需加载模块名自定义
路由管理:保留滚动位置 其实现与组件的keep-alive相关,仅设置了keep-aive的页面,实施保留回退位置能力. keep-alive介绍 作用 把切换出去的组件保留在内存中,可以保留它的状态 ...
- 谈谈后台服务的RPC和路由管理
版权声明:本文由廖念波原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/147 来源:腾云阁 https://www.qclo ...
随机推荐
- Hive----基本概念
Hive 基本概念 1. Hive:由 Facebook 开源用于解决海量结构化日志的数据统计. 2. Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供类 ...
- USB协议详解第1讲(核心概念通俗理解)
0.概括 USB协议学习中最重要几个概念如下,没有提及的就是对USB协议学习中不重要的或者编程不需要用到的.大家也不用着急,概念必须要学会,否则都不知道下面这些东西是什么还学什么通用串行总线协议,大家 ...
- Blinn-Phong
为什么出现Blinn-Phong 虽然Phong性能较高,但是在某些镜面反射条件下就会失效.比如下图,我们明显发现了一条明显的亮暗边界线,这在实际场景中是不应该发生的(实际场景中不会出现这种明显的过渡 ...
- day16-break,continue,goto
break,continue,goto break在任何循环语句的主体部分,均可用break控制循环的流程.break用于强行退出循环,不执行循环中剩余的语句.(break语句也在switch选择语句 ...
- HDU-ACM 2024 Day3
T1004 游戏(HDU 7460) 注意到对于两个人,他们 \(t\) 轮后能力值相同的概率只与他们初始时的能力差有关,所以我们先 \(\text{FFT}\) 求出 \(|a_i - a_j| = ...
- 修改文件的所有者失败(chown: changing ownership of `uploads': Operation not permitted)
在项目开发的时候,经常需要将文件上传到指定的目录下. 例如这次用thinkphp5的时候,需要在public目录下建立uploads目录用于存放上传的资源. 首先在命令窗口下输入: 1 mkdir u ...
- 自学PHP笔记(二)PHP数据类型
PHP数据类型可支持以下8种类型: 类型 说明 string 字符串 boolean 布尔值 integer 整型 float 浮点型 array 数组 object 对象 resource 资源 N ...
- mini-web 框架添加路由
阅读目录 1.mini web框架-4-路由 2.伪静态.静态和动态的区别 3.mini-web框架-实现伪静态url 4.准备股票数据 5.mini-web框架-从mysql中查询数据 6.mini ...
- VueJS实现迷糊查询
原文请查看公共号 前置条件: 开发环境:windows 开发框架:vue2.5 ,vue-cli 4.0+ 编辑器:HbuilderX 兼容版本:vue2.5 Chrome 99.0.4844 ...
- Discuz7.2 faq.php页面注入漏洞分析
由于discuz在全局会对GET数组进行addslashes转义,导致该漏洞的产生. 参数问题存在于faq.php的grouppermission函数中. 具体细节访问:网易博客siberia h ...