第五百回 Get路由管理

news2024/10/6 0:26:18

文章目录

  • 1. 概念介绍
  • 2. 使用方法
    • 2.1 普通路由
    • 2.2 命名路由
  • 3. 示例代码
  • 4. 内容总结

我们在上一章回中介绍了"使用get显示Dialog"相关的内容,本章回中将介绍使用get进行路由管理.闲话休提,让我们一起Talk Flutter吧。

在这里插入图片描述

1. 概念介绍

我们在本章回中介绍的路由管理主要是指页面之间的跳转,该功能是Get包的主要功能之一,不过原生SDK中也提供了该功能。我们在前面章回中介绍Get包时提到过路
由管理功能,本章回中将详细介绍该功能的用法,同时也会和原生SDK中的功能做比较。

2. 使用方法

我们在本章回中介绍的路由管理功能主要包含普通路由管理和命名路由管理两个功能。我们将分不同的小节来介绍它们。

2.1 普通路由

我们在这里说的普通路由是指在路由中直接使用页面类对象,比如下面的代码中直接使用了YourPage这个对象,它代表项目中的某个页面。

 Get.to(const YourPage());
 Navigator.of(context).push(MaterialPageRoute(builder: (context) => const YourPage()));

原生SDK中通过Navigator类来实现路由管理,该类提供了push,pop,push,pushReplacement等方法来实现路由跳转功能。Get包对此类进行了封装,它提供了相
关的方法来实现路由跳转功能,包中常用的方法如下:

  • to():用来从当前页面跳转到参数是指定的页面,与原生中的push方法功能相同;
  • back():用来从当前页面返回到上一级页面,与原生中的pop方法功能相同;
  • off():用来从当前页面跳转到参数是指定的页面,并且取消下一个页面的导航(返回箭头),与原生中的pushReplacement方法功能相同;
  • offAll():用来从当前页面跳转到参数指定的页面,并且删除所的有路由,与原生中的pushAndRemoveUntil方法功能相同;
    上面介绍的这些方法使用十分方便,主要体现在两个方面:通过包名就可以直接调用;只需要在参数中传入跳转的页面就可以,不需要BuildContext对象;

2.2 命名路由

命名路由就是给页面起一个别名,在页面跳转时通过别名来跳转到指定的页面。它的用法详细如下:

  • 给页面创建别名,并且把别名赋值给GetMaterialApp组件的getPages属性;
  • 在GetMaterialApp组件的initialRoute属性中指定根路由;
  • 使用包中的toNamed方法跳转到指定页面,该方法的的参数是页面的别名;
    掌握上面介绍的使用步骤就可以调用包中的方法来使用命名路由,下面是包中提供的相关方法:
  • toNamed():用来从当前页面跳转到参数是指定的页面,与原生中的push方法功能相同;
  • offNamed():用来从当前页面跳转到参数是指定的页面,并且取消下一个页面的导航(返回箭头),与原生中的pushReplacement方法功能相同;
  • offAllNamed():用来从当前页面跳转到参数指定的页面,并且删除所的有路由,与原生中的pushAndRemoveUntil方法功能相同;
    上面介绍的这些方法使用十分方便,主要体现在两个方面:通过包名就可以直接调用;只需要在参数中传入跳转的页面就可以,不需要BuildContext对象;此外,包中
    还提供了其它的命名路由方法,大家可以去查看接口相关的代码。

3. 示例代码

GetMaterialApp(
  // home: GetHomePage(),
  ///配置好路由后可以使用命名路由,配置方法和Material方法相同
  initialRoute: '/',
  getPages: [
    GetPage(name: '/', page: () => const GetHomePage(),),
    GetPage(name: '/overlay', page: () => const ExOverlayEntry(),),
    GetPage(name: '/html', page: () => const ExHtmlView(),),
  ],
);

ElevatedButton(
  onPressed: (){
    Get.toNamed('/html');
    // Navigator.of(context).pushNamed('/html');
  },
  child: const Text("Named"),),

上面的示例代码完全按照上一小节中的实现方法来编写,同时把包中路由方法赋值给了按钮的onPressed属性,这样在点击按钮时就可以跳转到其它的页面。这里只演示
了一种命名路由方法,其它的方法用法相同,大家可以自己动手去实践。

4. 内容总结

最后,我们对本章回的内容做一个全面的总结:

  • Get提供了两种方法管理路由:普通路由和命名路由;
  • 普通路由通过to,back,off()等方法来实现路由管理;
  • 命名路由通过toNamed,offNamed(),offAllNamed()等方法来实现路由管理;
  • Get包中进行路由管理的方法都是静态方法,并且不需要提供Context对象,使用十分方便;
    看官们,与"使用get进行路由管理"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1669305.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是分库分表

读写分离主要应对的是数据库读并发,没有解决数据库存储问题。试想一下:如果 MySQL 一张表的数据量过大怎么办? 答案当然是分库分表 什么是分库? 分库 就是将数据库中的数据分散到不同的数据库上,可以垂直分库,也可…

一二三应用开发平台使用手册——系统管理-系统参数系统日志-使用说明

系统参数 概述 通过配置化,可以提升系统灵活性和运维便利性。 配置化往往分为两大类,一类是偏技术层面的,如平台的发送邮件提醒的邮箱,相对固化,不会频繁调整,一般放在系统的配置文件里,如spr…

目标检测——印度车辆数据集

引言 亲爱的读者们,您是否在寻找某个特定的数据集,用于研究或项目实践?欢迎您在评论区留言,或者通过公众号私信告诉我,您想要的数据集的类型主题。小编会竭尽全力为您寻找,并在找到后第一时间与您分享。 …

MySQL前缀索引、脏页和干净页、COUNT(*)讨论、表删除内存问题

文章目录 如何加索引如何给身份证号添加索引 SQL语句变慢脏页 (Dirty Pages)干净页 (Clean Pages)为何区分脏页和干净页处理脏页管理策略 flush如何控制 为什么删除表数据后表文件大小不变问题背景核心原因数据存储方式参数影响 解决方案1. 调整innodb_file_per_table设置2. 使…

2.4 输入和显示

本节必须掌握的知识点: 示例五源代码 代码分析 汇编解析 2.4.1 示例五 ■格式化输入函数scanf scanf函数可以从键盘读取输入的信息。scanf函数同样可以像printf函数那样,通过转换说明“%d”来限制函数只能读取十进制数。scanf函数的参数为可变参数…

雷军-2022.8小米创业思考-6-互联网七字诀之快:天下武功,唯快不破;快不是目的,快是手段;不要用战术上的勤奋掩盖战略上的懒惰。

第六章 互联网七字诀 专注、极致、口碑、快,这就是我总结的互联网七字诀,也是我对互联网思维的高度概括。 快 我们期待非常多的快,比如研发进展快、库存周转快、资金回笼快等等。但在这里,我们集中讨论的是公司在业务发展和面对…

【5分钟学会一个知识点】01.Elasticsearch基本操作-增删改查

目录 【5分钟学会一个知识点-探索现代搜索与分析引擎的魅力】01.Elasticsearch基本操作-增删改查1.基本操作1.1索引操作1.2文档操作1.3查询1.4修改数据1.5查询1.5.1条件查询1.5.1.1遍历所有的索引1.5.1.2查询某个索引1.5.1.3条件查询1:使用GET url传参数1.5.1.4条件…

18、案例实战:上亿请求轻松应对,看年轻代垃圾回收如何助力电商性能飞跃!

18.1、背景引入 我们通常会通过案例分析,来指导大家如何在不同的场景下,预测系统的内存使用模型。我们需要合理地调整新生代、老年代、Eden和Survivor各个区域的内存大小,然后尽可能地优化参数,以减少新生代对象进入老年代的情况…

An 2024下载

An2024下载: 百度网盘下载https://pan.baidu.com/s/1cQQCFL16OUY1G6uQWgDbSg?pwdSIMS Adobe Animate 2024,作为Flash技术的进化顶点,是Adobe匠心打造的动画与交互内容创作的旗舰软件。这款工具赋予设计师与开发者前所未有的创意自由&#x…

火绒安全原理、用法、案例和注意事项

火绒安全是一款功能强大的安全软件,它采用了先进的安全技术和算法,通过实时监测、恶意代码识别、防火墙功能、沙箱技术和网络保护等多种手段,为用户提供全面的计算机安全防护。 1.为什么选用火绒安全? 火绒安全是一款优秀的安全软…

用lobehub打造一个永久免费的AI个人助理

Lobe Chat是一个开源的高性能聊天机器人框架,它被设计来帮助用户轻松创建和部署自己的聊天机器人。这个框架支持多种智能功能,比如语音合成(就是让机器人能说话),还能理解和处理多种类型的信息,不仅限于文字…

AI图书推荐:用GPT-4进行预测分析的实用指南

《用GPT-4进行预测分析的实用指南》(A Practical Guide to Predictive Analytics with GPT-4)为读者提供了一个全面的指南,介绍了如何利用GPT-4的强大预测能力,从理解预测分析的基础,到掌握GPT-4的使用,再到…

基于yolov5+gradio目标检测演示系统设计

YOLOv5与Gradio:目标检测可视化展示的新篇章 随着人工智能技术的深入发展,目标检测已成为现代智能应用中的一项关键技术。YOLOv5,作为目标检测领域的杰出代表,凭借其出色的实时性和准确性,赢得了广泛的认可和应用。而…

电力场景设备漏油检测数据集VOC+YOLO格式338张1类别

数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):338 标注数量(xml文件个数):338 标注数量(txt文件个数):338 标注类别…

数据缓存,可以尝试RocksDB了

shigen坚持更新文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。 个人IP:shigen shigen在最近的学习中,接触到了一款新的缓存数据库RocksDB&#xff…

SQL语句优化技巧

目录 1、sql语句规范 2、sql语句优化 1、sql语句规范 MySQL在Linux系统下数据库名,表名,存储过程名,函数名称,触发器名称等区分大小写,列名不区分大小写,原因是这些操作系统下文件名称区分大小写。 MySQL…

LNMP 环境下 Nginx 1.26.0 开启 HTTP/3 QUIC 支持

前几天 Nginx 1.26.0 主线版发布了,明月总算抽出时间更新了,那么自然的也要尝试一下开启 HTTP/3 QUIC 支持了,今天就给大家分享一下。对于我们的网站来说开启 HTTP/3 QUIC 最大的好处是页面载入速度的提升,尤其是在支持 HTTP/3 QU…

安卓模拟器怎么修改ip地址

最近很多老铁玩游戏的,想多开模拟器一个窗口一个IP,若模拟器窗口开多了,IP一样会受到限制,那么怎么更换自己电脑手机模拟器IP地址呢,今天就教大家一个修改模拟器IP地址的方法!废话不多说,直接上…

牛客NC363 开锁【中等 BFS Java/Go/PHP】

题目 题目链接: https://www.nowcoder.com/practice/e7cbabbf7e0a41ec98055ee5f3d33bbe https://www.lintcode.com/problem/796 思路 Java代码 import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定,请勿修改&#x…

文件系统(未打开的文件)

之前我们讲述的一些文件操作都是在文件被打开的基础上的,因为用户想要对某个文件做操作的话,这个文件一定是被打开的,也就是一定是内存级的文件。 但是有的没有被操作的文件,是在磁盘中的,我们的笔记本是在SSD中&…