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());

别名导航

可以创建一个路由表,给每一个页面创建一个别名

通过在GetMaterialAppgetPage添加

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之路由管理的更多相关文章

  1. Flutter 应用入门:路由管理

    路由(Route)在移动开发中通常指页面(Page),这跟web开发中单页应用的Route概念意义是相同的,Route在Android中通常指一个Activity,在iOS中指一个ViewContro ...

  2. 6.2.初识Flutter应用之路由管理

    路由管理 路由(Route)在移动开发中通常指页面(Page),这跟web开发中单页应用的Route概念意义是相同的,Route在Android中通常指一个Activity,在iOS中指一个ViewC ...

  3. flutter最简单轻量便捷的路由管理方案NavRouter

    大家好,我是CrazyQ1,今天给大家推荐一个路由管理方案,用的非常不错的,叫nav_router. 项目地址是:https://github.com/fluttercandies/nav_route ...

  4. Flutter中的普通路由与命名路由(Navigator组件)

    Flutter 中的路由通俗的讲就是页面跳转.在 Flutter 中通过 Navigator 组件管理路由导航.并提供了管理堆栈的方法.如:Navigator.push 和 Navigator.pop ...

  5. Flutter 中的基本路由

    Flutter 中的路由通俗的讲就是页面跳转.在 Flutter 中通过 Navigator 组件管理路由导航,并提供了管理堆栈的方法.如:Navigator.push 和 Navigator.pop ...

  6. Flutter 中的普通路由、普通路由传值、 命名路由、命名路由传值

    一.Flutter 中的路由 Flutter 中的路由通俗的讲就是页面跳转.在 Flutter 中通过 Navigator 组件管理路由导航.并提供了管理堆栈的方法.如:Navigator.push ...

  7. WebApp中的页面生命周期及路由管理

    最近切换到一个新项目,使用的技术栈是Require+Backbone,鉴于对鞋厂webapp框架的了解,发现这个新项目有些缺陷,主要是单纯依赖Backbone造成的,也就是Backbone的好和坏都在 ...

  8. Springcloud Gateway 路由管理

    Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开 ...

  9. vue路由管理-保留滚动位置功能、按需加载模块名自定义

    路由管理:保留滚动位置 其实现与组件的keep-alive相关,仅设置了keep-aive的页面,实施保留回退位置能力. keep-alive介绍 作用 把切换出去的组件保留在内存中,可以保留它的状态 ...

  10. 谈谈后台服务的RPC和路由管理

    版权声明:本文由廖念波原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/147 来源:腾云阁 https://www.qclo ...

随机推荐

  1. 《Spring Data JPA从入门到精通》内容简介、前言

    内容简介 本书以Spring Boot为技术基础,从入门到精通,由浅入深地介绍Spring Data JPA的使用.有语法,有实践,有原理剖析. 本书分为12章,内容包括整体认识JPA.JPA基础查询 ...

  2. 03 什么是预训练(Transformer 前奏)

    博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 配套 github 链接:https:// ...

  3. CEOI2022

    Day1 T1 Abracadabra 题意:给你一个 \(1 \sim n\) 的排列 \(p\),保证 \(n\) 为偶数,我们对它进行足够多次数的洗牌操作,定义一次洗牌为: 考虑取出 \(p_{ ...

  4. KubeSphere 宣布开源 Thanos 的企业级发行版 Whizard

    日前,青云科技宣布开源 Thanos 的企业级发行版 Whizard,为企业带来真正高可用.可扩展.可存储与查询海量监控数据.易运维.安全的 Prometheus 长期存储方案. Prometheus ...

  5. 10款每个Web 开发人员都应该知道的JavaScript 插件

    那些从事 Web 开发工作的人肯定会注意到 JavaScript 的多功能性.与 ASP 或 PHP 不同,这种客户端编程语言为开发人员提供了多种可应用于项目的功能. 如果我们正在处理数据并希望丰富网 ...

  6. Vue 中 v-html 无法被 style scoped 渲染的问题

    假设有这么一个 vue 组件: <template> <div v-html="docPreview"/> </template> <st ...

  7. Java高并发,创建线程的新方式Callable接口

    我们已经知道创建线程的方式有1.继承thread类.2.实现Runnable接口 接下来讲创建线程的新方式Callable接口,首先对比一下Runnable接口和Callable接口的区别: 首先创建 ...

  8. Java遇到PKIX path building failed错误的解决办法

    Java调用HTTPS可能出现如下错误: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderExc ...

  9. 在react中使用阿里图标库

    参考教程:https://blog.csdn.net/qq_41977441/article/details/110352463 阿里图标库:https://www.iconfont.cn/ 成果展示 ...

  10. github加速 DevSidecar 1.8.8

    DevSidecar 1.8.8 更多配置请参考:github开源