返回顶部
首页 > 资讯 > 移动开发 >Flutter路由fluro引入配置和使用的具体方法
  • 702
分享到

Flutter路由fluro引入配置和使用的具体方法

2024-04-02 19:04:59 702人浏览 八月长安
摘要

目录Flutter_fluro简介 引入fluro 初始化Fluro 编写rotuer_handler 配置路由 把Fluro的Router静态化 把路由注册/注入到顶层 在首页使用

Flutter本身提供了路由机制,作个人的小型项目,完全足够了。但是如果你要作企业级开发,可能就会把入口文件变得臃肿不堪。而再Flutter问世之初,就已经了企业级路由方案fluro。

flutter_fluro简介

fluro简化了Flutter的路由开发,也是目前Flutter生态中最成熟的路由框架

GitHub地址:https://github.com/theyakka/fluro

它出现的比较早啊,是目前用户最多的Flutter路由解决方案,目前Github上有将近1000Star,可以说是相当了不起了。

引入fluro

在pubspec.yaml文件里,直接注册版本依赖,代码如下。(注意要最新版)


dependencies:
 fluro: "^1.5.1"

如果你这个版本下载不下来,你也可以使用git的方式注册依赖,这样页是可以下载包的(这也是小伙伴提的一个问题),代码如下:


dependencies:
 fluro:
   git: git://github.com/theyakka/fluro.git

在项目的入口文件,也就是main.dart中引入,代码如下:


import 'package:fluro/fluro.dart';

通过上面的三步,就算把Fluro引入到项目中了,下面就可以开心的使用了。

初始化Fluro

现在可以进行使用了,使用时需要先在Build方法里进行初始化,其实就是把对象new出来。


final router = Router();

编写rotuer_handler

handler相当于一个路由的规则,比如我们要到详细页面,这时候就需要传递商品的ID,那就要写一个handler。这次我按照大型企业级真实项目开发来部署项目目录和文件,把路由全部分开,Handler单独写成一个文件。新建一个routers文件夹,然后新建router_handler.dart文件


import 'package:flutter/material.dart';
import 'package:fluro/fluro.dart';
import '../pages/details_page.dart';


Handler detailsHanderl =Handler(
  handlerFunc: (BuildContext context,Map<String,List<String>> params){
    String GoodsId = params['id'].first;
    print('index>details goodsID is ${goodsId}');
    return DetailsPage(goodsId);

  }
);

这样一个Handler就写完了。Hanlder的编写是路由中最重要的一个环境,知识点也是比较多的,这里我们学的只是最简单的一个Handler编写,以后会随着课程的增加,我们会再继续深入讲解Handler的编写方法。

Hanlder只是对每个路由的独立配置文件,fluro当然还需要一个总体配置文件。配置好后,我们还需要一个静态化文件,方便我们在UI页面进行使用。

配置路由

我们还需要对路由有一个总体的配置,比如跟目录,出现不存在的路径如何显示,工作中我们经常把这个文件单独写一个文件。在routes.dart里,新建一个routes.dart文件。

代码如下:


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

class Routes { //配置类
  static String root = '/'; //根目录
  static String detailsPage = '/detail'; //详情页面
  //静态方法
  static void configureRoutes(Router router){//路由配置
    //找不到路由
    router.notFoundHandler = new Handler(
      handlerFunc: (BuildContext context,Map<String,List<String>> params){
        print('ERROR====>ROUTE WAS NOT FONUND!!!');
      }
    );
    //整体配置
    router.define(detailsPage, handler: detailsHandler); 
  
  }
}

把Fluro的Router静态化

这一步就是为了使用方便,直接把Router进行静态化,这样在任何一个页面都可以直接调用,不用再New 去调用了。

在routers下面新建了application.dart文件。代码如下:


import 'package:fluro/fluro.dart';

class Application{
  static Router router;
}

静态化Router,这样我们在使用的时候就可以直接用 Application.Router就可以了。

现在我们基本就把Fluro的路由配置好了,这样的配置虽然稍显复杂,但是跟层次和条理化,扩展性也很强。

把路由注册/注入到顶层

打开main.dart文件,首页引入配置文件和静态化文件,routes.dart和application.dart,代码如下:


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

引入后需要进行赋值,进行注入程序。这里展示主要build代码。


class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    //-------------------主要代码start
    final router = Router(); //路由初始化
    Routes.configureRoutes(router);
    Application.router = router;
    //-------------------主要代码end
    
    return Container(
      child: MaterialApp(
        title:'百姓生活+',
        debugShowCheckedModeBanner: false,
        //----------------主要代码start
        onGenerateRoute: Application.router.generator, //路由静态化
        //----------------主要代码end
        theme: ThemeData(
          primaryColor:Colors.pink,
        ),
        home:IndexPage()
      ),
    );
  }
}

上面代码就是注入整个程序,让我们在任何页面直接引入application.dart就可以使用。

在首页使用

现在要在首页里使用路由,直接在首页打开商品详细页面。

先引入application.dart文件:


import './routers/application.dart';

然后再火爆专区的列表中使用配置好的路由,打开商品详细页面details_page.dart。

打开home_page.dart文件,找到火爆专区列表里的ontap事件,然后在ontap事件中直接使用application进行跳转,代码如下:


Application.router.navigateTo(context,"/detail?id=${val['goodsId']}");

这时候可以测试一下,如果一切正常,应该可以打开商品详细页面了。

总结:

单独写一个Handler文件,每个Handler都写在里面,每个路由单独定义,然后进行跳转页面都是在Handler里做的。如果有10个页面,把10个页面的Handler都做完了,要到routes.dart文件里去进行总体配置define,再进行静态化,然后在主main.dart文件里注入,最后就可以使用了。

每添加一个路由,router文件和Handler文件都要进行配置。

到此这篇关于Flutter路由fluro引入配置和使用的具体方法的文章就介绍到这了,更多相关Flutter fluro配置使用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Flutter路由fluro引入配置和使用的具体方法

本文链接: https://lsjlt.com/news/135043.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Flutter路由fluro引入配置和使用的具体方法
    目录flutter_fluro简介 引入fluro 初始化Fluro 编写rotuer_handler 配置路由 把Fluro的Router静态化 把路由注册/注入到顶层 在首页使用...
    99+
    2024-04-02
  • nodejs的路由怎么配置和使用
    今天小编给大家分享一下nodejs的路由怎么配置和使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了...
    99+
    2024-04-02
  • Python语法检查引用PyLint配置的具体方法是什么
    本篇文章给大家分享的是有关Python语法检查引用PyLint配置的具体方法是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Python作为一种动态语言,它在搭建比较大的系...
    99+
    2023-06-17
  • PHP中使用路由匹配器实现路由规则的动态配置和扩展
    在Web应用程序中,路由规则是非常重要的一部分。它决定了如何根据用户的请求将其映射到相应的处理程序或控制器。传统的做法是在应用程序的代码中硬编码路由规则,这样会导致代码难以维护和扩展。为了解决这个问题,可以使用路由匹配器来实现路由规则的动态...
    99+
    2023-10-21
    路由匹配器 (Route Matcher) 路由规则 (Route Rules) 动态配置 (Dynamic Confi
  • PHP中灵活运用路由配置文件的方法
    概述:在开发Web应用程序时,路由是非常重要的一部分。通过路由,可以将请求映射到相应的处理程序上,实现不同URL的访问逻辑。在PHP中,可以通过灵活运用路由配置文件,方便地管理和维护路由规则。本文将介绍如何使用路由配置文件,以及给出具体的代...
    99+
    2023-10-21
    PHP路由配置 灵活配置路由 路由配置文件
  • Vue3使用路由及配置vite.alias简化导入写法的过程详解
    目录一、使用路由二、配置vite.alias简化导入写法一、使用路由1)安装vue-routeryarn add vue-router2)注册路由将两个组件Home、Project注册到路由中:import {...
    99+
    2022-11-16
    vue3 路由配置 vue vite.alias路由 配置vite.alias简化导入写法
  • Pytest中skip和skipif的具体使用方法
    skip的用法 使用示例:@pytest.mark.skip(reason="跳过的原因,会在执行结果中打印") 标记在测试函数中 举个🌰 import pytest def test_1()...
    99+
    2022-06-02
    skip和skipif的使用 Python Pytest
  • Gson之toJson和fromJson方法的具体使用
    目录1.toJson()方法是实现从java实体到Json相关对象的方法2.fromJson()方法来实现从Json相关对象到java实体的方法Gson是Google的一个开源项目,...
    99+
    2024-04-02
  • 详解vue中路由的安装和使用方法
    Vue 是一款流行的前端开发框架,它提供了诸多方便开发的工具和功能。其中,Vue 路由能够帮助我们创建单页应用程序,并且帮助我们实现路由功能。本篇文章将会介绍 Vue 路由的使用。Vue路由安装在开始使用 Vue 路由之前,我们需要先安装 ...
    99+
    2023-05-14
  • Python内置函数 next的具体使用方法
    Python 3中的File对象不支持next()方法。 Python 3有一个内置函数next(),它通过调用其next ()方法从迭代器中检索下一个项目。 如果给定了默认值,则在迭代器耗尽返回此默认值,...
    99+
    2022-06-04
    使用方法 函数 Python
  • Python内置函数—vars的具体使用方法
    本文文章主要介绍了Python内置函数—vars的具体使用方法,分享给大家,具体如下: 英文文档: vars([object]) Return the __dict__ attribute for a ...
    99+
    2022-06-04
    使用方法 函数 Python
  • 在Linux操作系统下修改IP、DNS和路由配置的方法
    这篇文章主要介绍“在Linux操作系统下修改IP、DNS和路由配置的方法”,在日常操作中,相信很多人在在Linux操作系统下修改IP、DNS和路由配置的方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”在Li...
    99+
    2023-06-13
  • PHP中灵活配置路由规则的实现方法和经验总结
    引言:在Web开发中,路由规则是非常重要的一部分,它决定了URL与具体的PHP脚本的对应关系。在传统的开发方式中,我们通常会在路由文件中配置各种URL规则,然后将URL与对应的脚本路径进行映射。但是,随着项目的复杂度增加和业务需求的变化,如...
    99+
    2023-10-21
    PHP 配置 路由
  • SpringCloud Config的使用和配置方法
    这篇文章主要介绍“SpringCloud Config的使用和配置方法”,在日常操作中,相信很多人在SpringCloud Config的使用和配置方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Sprin...
    99+
    2023-06-20
  • 聊聊安装和使用Github源码的具体方法
    Github源码是开源社区中最受欢迎的源码托管平台之一,它为开发者提供了一个分享和合作的社区平台。使用Github源码需要一定的技术知识和操作技巧,接下来我将为您介绍安装和使用Github源码的具体方法。第一步,创建Github账号Gith...
    99+
    2023-10-22
  • Vue中的路由使用和多种守卫方法是什么
    今天小编给大家分享一下Vue中的路由使用和多种守卫方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.vue-rou...
    99+
    2023-07-05
  • linux后台执行命令&和nohup的具体使用方法
    当我们在终端或控制台工作时,可能不希望由于运行一个作业而占住了屏幕,因为可能还有更重要的事情要做,比如阅读电子邮件。对于密集访问磁盘的进程,我们更希望它能够在每urXFSljRoK天的非负荷高峰时间段运行(例如凌晨)。为...
    99+
    2022-06-04
    linux & nohup linux 后台执行命令
  • ES6数组复制和填充方法copyWithin()、fill()的具体使用
    目录批量复制 copyWithin() 填充数组方法 fill() 关于索引的计算方式,两种方法相同copyWithin()、fill()共同点 需要指定一个数组实例的范围...
    99+
    2024-04-02
  • Linux系统命令scp和ssh的具体使用方法是什么
    今天给大家介绍一下Linux系统命令scp和ssh的具体使用方法是什么。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。如果ssh的端口是22,那么可以不用指定-...
    99+
    2023-06-28
  • 正确使用CSS引入第三方框架的方法和技巧
    如何正确使用CSS引入第三方框架 在现代的web开发中,使用第三方框架是非常常见的。第三方框架提供了许多功能强大且易于使用的CSS样式和组件,能够节省开发时间和提高网站性能。本文将介绍如何正确地使用CSS引入第三方框架,并提供具...
    99+
    2024-01-16
    使用指南 CSS引入框架 第三方框架
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作