flutter企业级路由插件Fluro


查看Fluro最新版本

添加依赖

#路由跳转
 fluro:  ^1.5.1

新建相关文件

1pages文件夹同级新建routers/router_handler.dart文件,用于初始化跳转到各个页面的handle,并获取到上个页面传递过来的值,然后在初始化要跳转到的页面.

在这里插入图片描述
代码如下

import 'package:flutter/material.dart';
import 'package:fluro/fluro.dart';
//引入商品详情页面
import '../pages/detaisPage.dart';

// 监测详情页面路由传值
var DetaisHandler = new Handler(
    handlerFunc: (BuildContext context, Map<String, List<String>> params) {
     String  goodsId=params["id"].first; //接受路由传的id
     print("index>detailpage>goodsid=${goodsId}");//字面量
     return DetaisPage(goodsId);
});

2.建立一个routers/routes.dart文件 用于包含所有需要路由跳转的handler

在这里插入图片描述

代码如下

import 'package:flutter/material.dart';
import 'package:fluro/fluro.dart';
import './router_handler.dart';

class Routes{
   
   static  String root="/";
   static  String detailPage='/detail';//①处

  static void configureRoutes(Router router){
    // 检测如果没有匹配到路由
    router.notFoundHandler = new Handler(
        handlerFunc: (BuildContext context,Map<String,List<String>> params){
      print("route is not find !");
    });

    // 1.detailPage取值①处的变量
    // 2.DetaisHandler取值于router_handler.dart 
    router.define(detailPage, handler: DetaisHandler);  
    
  }
}
3.为了使用更方便我们需要把routes.dart的类静态化 使用的时候会方便很多直接调用该文件就可以了。

新建一个routes/application.dart文件 下面贴出核心代码

import 'package:fluro/fluro.dart';

class Application{
  static Router router;  //静态化 使用的时候不用再new了
}
4.顶级文件main.dart进行注册
// 第一部分  加载路由的三个文件
import 'package:fluro/fluro.dart';
import './routers/application.dart';
import './routers/routes.dart';



class MyApp extends StatelessWidget {
 
   MyApp(){
   
    //第二部分  顶级注册路由初始化路由 
    final router = new Router();
    Routes.configureRoutes(router);
    Application.router = router;
  }

  @override
  Widget build(BuildContext context) {
    return Container(
      child:MaterialApp(
             title:'FlutterDemo+' ,
             onGenerateRoute: Application.router.generator, //第三部分 自定义路由
             debugShowCheckedModeBanner: false,
             theme: ThemeData(
               primaryColor: Colors.pink
             ),
             home: IndexPage()

      ),
    );
  }
}




5.路由的框架搭建完毕 下面来使用吧。




 onTap: (){
           // 跳转页面并进行传值
           Application.router.navigateTo(context, "/detail?id=${newList[index].goodsId}");

           },
6.打完收工 (本人是小白一枚 欢迎一起交流)

在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值