flutter 路由插件fluro配置及其使用

2023-11-11

flutter 路由插件fluro配置及其使用

pubspec.yaml:引入插件

dependencies:
  flutter:
    sdk: flutter
  fluro: "^1.6.3"

1. 首先创建一个router_handler.dart文件,定义路由去到哪个部件,以及传递给该部件的参数:

router_handler.dart文件如下:

import 'pagckage:flutter/material.dart';
//引入路由插件fluro 需要在pubspec.yaml文件中配置插件并下载才能引入
import 'pagckage:fluro/fluro.dart';
//引入路由跳转去到的部件
import '../pages/user.dart';

Handler userHandler = Handler(handlerFunc: (BuildContext context, Map<String, dynamic> params) {
  //params是跳转路由url?后面传递的参数,我们需要参数里面的id值并传递给跳转到的部件内
  return User(params["id"][0]);
});
//下面还可以继续添加如上的路由跳转Handler
...

2. 下面就是给路由命名的 routes.dart 文件
routes.dart文件如下:

import 'pagckage:flutter/material.dart';
//引入路由插件fluro 需要在yml文件中配置插件并下载才能引入
import 'pagckage:fluro/fluro.dart';
//引入决定路由跳转去到而的部件router_handler
import './router_handler.dart';
//没有对应匹配路由时去的部件
import './page_404.dart';

class Routes {
  static String root = '/';
  static String user = '/user';
  ...
  static void configureRoutes(Router router) {
    //notFoundHandler是匹配不到路由时执行出发的
    router.notFoundHandler = new Handler(handlerFunc: (BuildContext context, Map<String, dynamic> params)) {
       //这是可以定义一个404页面部件
       return Page404();
    };
    //根路由时去homeHandler部件 当然router_handler.dart里我没定义homeHandler,可自行配置
    router.define(root, handler: homeHandler);
    //user路由时去userHandler部件
    router.define(user, handler: userHandler);
    //也可以直接写路由路径
    router.define('/user/:id', handler: userHandler);
  }
}

3. 静态化路由: 目的:使路由静态化
application.dart 文件如下:

import 'pagckage:fluro/fluro.dart';
class Application{
  static Router router;
}

4. 在main.dart 内注入路由,相当于给全局注入路由

...
import './routers/application.dart';
import './routers/routes.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  //注入路由
  final router = Router();
  Router.congigureRoutes(router);
  Application.router = router;
  
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      onGenerataRoute: Application.router.generator, //全局注入路由
	  ...	
    );
  }
}

5. 使用路由:

InkWell(
  onTap: (){
     //通过Application的路由就可以跳转页面啦
     Application.router.navigateTo(context, "/user?id=${userId}")
  },
  child: ...
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

flutter 路由插件fluro配置及其使用 的相关文章

随机推荐

  • 三、C++语言进阶:动态库与静态库之类篇

    3 动态库与静态库之类篇 3 1 素材 文件 test h pragma once class Test public Test Test void Func int i test cpp include
  • 【死磕 Java 基础】— 我同事一个 select 分页语句查出来了 3000W 条数据

    大家好 我是大明哥 某天我正在工位上听着 Victory 愉快地敲着 hello world 这感觉就像我写的代码能征服世界 突然运维给我打了一个电话 说我们某台服务器 OOM 了 要我过去看下 这感觉就像 xxx 你懂的 去运维室 登录服
  • 【HBZ分享】ElasticSearch读写数据的原理 以及 路由策略原理-【短而精悍,易于理解】

    ElasticSearch分布式工作原理 是如何进行读写数据的 1 简单介绍ES 首先es是分布式的 只要我们启动相应数量的节点 并且这些节点分配相同的cluster name 那他们就对属于同一个集群了 创建索引的时候 只需要指定对应的主
  • js的继承的实现与代码编写

    js的继承的实现与代码编写 一 继承 对象的一个类可以从现有的类中派生 并且拥有现有的类的方法或是属性 这和过程叫做继承 被继承的类叫做父类或是基类 继承的类叫做子类 一个对象拥有另一个对象的属性和方法 在 JavaScript 中 是没有
  • QVariant类及QVariant与自定义数据类型转换的方法

    这个类型相当于是Java里面的Object 它把绝大多数Qt提供的数据类型都封装起来 起到一个数据类型 擦除 的作用 比如我们的 table单元格可以是string 也可以是int 也可以是一个颜色值 那么这么多类型怎么返回呢 于是 Qt提
  • 性能测试连载 (10)-数据错误率分析

    概述 性能测试脚本跑完了之后 我们除了要收集瓶颈数据 还有分析错误数据 通常一套脚本跑完 错误类型不止一种 但是jmeter只会在聚合报告里面给出一个总体的错误率 错误率 jmeter里的错误率是如何统计的 在返回的数据里面 只要succe
  • Maven项目中出现红色波浪线的解决过程

    一 问题分类 对于Maven项目出现红色波浪线可以首先对报错情况进行分析 我遇到的两种表现形式 还有其他的形式 请多多指教 形式一 所用文件均出现红色波浪线 此问题可能是配置问题 形式二 maven项目 Plugins Dependenci
  • Element-Ui

    安装环境搭建 Element Ul是饿了么前端团队推出的一款基于Vue js 2 0 的桌面端UI框架 一套为开发者 设计师和产品经理准备的基于 Vue 2 0 的桌面端组件库 手机端有对应框架是Mint UI 中文文档 http elem
  • 蓝桥杯 奇数倍数

    蓝桥杯 奇数倍数 题目 请你找到最小的整数 X 同时满足 1 X 是 2019 的整倍数 2 X 的每一位数字都是奇数 思路 1 先找2019倍数 2 判断它的每一位是否是奇数 Java代码 public class 奇数倍数 public
  • 2022跨年烟花代码(一)Canvas绘制3D烟花动画特效

    Canvas绘制3D烟花动画特效 html代码
  • Knife4j+gateway动态路由聚合微服务API

    概述 knife4j的聚合API 其实官网有现成的例子 但包括其他能搜索到的资料都是基于静态网关的配置 我们现有的都是结合nacos实现动态网关配置 基于此留下这篇完整的教程文档 说明 本文假定你有一定的springcloud等相关知识 如
  • 树莓派安装配置syncthing

    下载 从这里下载软件 下载后解压 把二进制文件放到 usr local bin 目录 在命令行输入syncthing version命令 能打印出版本即可 自动启动 Unit Description Syncthing Open Sourc
  • struts2验证框架的两种方式

    第一种 在action同目录下建立 action validation xml
  • 关于JavaScript的浅拷贝和深拷贝

    关于JavaScript的浅拷贝和深拷贝 在 JS 中有一些基本类型像是Number String Boolean 而对象就是像这样的东西 name Larry skill Node js 对象跟基本类型最大的不同就在于他们的传值方式 基本
  • logging的使用python3

    以时间命名输出日志 def init logging t str time strftime Y m d H M time localtime filename log s txt t logging basicConfig level l
  • 刷题 3.10

    目录 1 约瑟夫环 蓝桥231 2 排它平方数 蓝桥712 3 买不到的数目 蓝桥213 思维题 思路 因为有解 两个数一定互质 不能拼成的最大数是xy x y 4 回文日期 1 约瑟夫环 蓝桥231 题目描述 n 个人的编号是 1 n 如
  • handsontable使用及遇到的坑--公式计算(思路)

    公式 公式的计算可使用堆栈的思想将运算符后置 如 C1 A1 A2 5 B1可以变换成 A1 A2 5 B1 计算过程为 假设A1 1 A2 2 B1 3 C1 A1 A2 5 B1 A1 A2 5 B1 1 2 5 3 3 5 3 15
  • 腾讯三面(hr面)之轻松过关

    腾讯二面之细节大曝光中最后提到 22号晚上11 00先后分别收到邮件 短信与电话通知 腾讯邀请你于4月23号16点到珞珈山国际酒店3楼2号会议室参加软件开发类面试 请携带简历提前5分钟到达 腾讯科技 23号上午 同样在旅馆查询资料 虽然很多
  • 【华为提前批】笔试 测评 面试 全流程(结构与材料工程师)

    目录 提前批流程 笔试 性格测试 专业面试1 2 主管面 终面 最后 祝各位旗开得胜 提前批流程 一般综合测评会在笔试之后发放 可选择之后再做 流程里面是安排在两轮技术面之后的 笔试 7 12 性格测试 7 14 专业面试1 7 24 专业
  • flutter 路由插件fluro配置及其使用

    flutter 路由插件fluro配置及其使用 pubspec yaml 引入插件 dependencies flutter sdk flutter fluro 1 6 3 1 首先创建一个router handler dart文件 定义路