国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Flutter中GetX系列九--路由/頁(yè)面跳轉(zhuǎn),傳值,中間件(GetPage)

這篇具有很好參考價(jià)值的文章主要介紹了Flutter中GetX系列九--路由/頁(yè)面跳轉(zhuǎn),傳值,中間件(GetPage)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1.頁(yè)面?zhèn)髦堤D(zhuǎn)和中間件(GetPage)使用代碼

import 'package:flutter/material.dart';
import 'package:flutterlianxi/login_VC.dart';
import 'package:get/get.dart';
import 'routers.dart';

void main() {
  runApp(GetMaterialApp(
    home: BottomAppBarDemo(),
    //設(shè)置初始化路由
    initialRoute: "/",
    //全部配置頁(yè)面跳轉(zhuǎn)的動(dòng)畫(是安卓的風(fēng)格還是ios的風(fēng)格)
    defaultTransition: Transition.rightToLeft,
    //設(shè)置路由地址
    getPages: RoutersPageVC.routers,
  ));
}


class BottomAppBarDemo extends StatelessWidget {
  const BottomAppBarDemo({super.key});

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("首頁(yè)"),
      ),
      body: Column(
        children: [
          //普通頁(yè)面跳轉(zhuǎn)
          ElevatedButton(
              onPressed: () {
                //帶參數(shù)傳值跳轉(zhuǎn)
                Get.toNamed("/login_VC", arguments: {"dataId": "2345"});

                //Get.back();//返回上一級(jí)頁(yè)面

                // Get.offAll(Tabs());//返回到跟路由

                //Get.off(LoginVC());//跳轉(zhuǎn)的頁(yè)面沒(méi)有返回按鈕 
              },
              child: const Text("路由跳轉(zhuǎn)")),
          const SizedBox(
            height: 20,
          ),
          //中間件頁(yè)面跳轉(zhuǎn)
          ElevatedButton(
              onPressed: () {
               //在跳轉(zhuǎn)的時(shí)候可以根據(jù)條件判斷,不滿足條件的時(shí)候跳轉(zhuǎn)到其他頁(yè)面
                Get.toNamed("/shop_VC");
              },
              child: const Text("中間件頁(yè)面跳轉(zhuǎn)")),
        ],
      ),
    );
  }
}
1.1.使用to方法實(shí)現(xiàn)頁(yè)面基本跳轉(zhuǎn)
import './Home.dart';
ElevatedButton(
            onPressed: () async {
              Get.to(Home());
            },
            child: Text("跳轉(zhuǎn)到首頁(yè)")),
?1.2.使用Get.toNamed()跳轉(zhuǎn)到命名路由

系統(tǒng)跳轉(zhuǎn)方式

//系統(tǒng)跳轉(zhuǎn)方式
Navigator.pushNamed(context, "/login")
?Getx跳轉(zhuǎn)方式

//沒(méi)有攜帶參數(shù)
Get.toNamed("/login");
//攜帶參數(shù)
Get.toNamed("/shop",arguments: { "id":20 });


//接收參數(shù),可以直接通過(guò)Get.arguments

print(Get.arguments);
1.3.返回上一級(jí)頁(yè)面Get.back()

系統(tǒng)跳轉(zhuǎn)方式

Navigator.of(context).pop();
Getx跳轉(zhuǎn)方式???????
 Get.back();
1.4.返回到根路由

系統(tǒng)跳轉(zhuǎn)方式

ElevatedButton(
            onPressed: () async {
              Navigator.of(context).pushAndRemoveUntil(
                  MaterialPageRoute(builder: (BuildContext context) {
                return const Tabs(index: 4);
              }), (route) => false);
            },
            child: Text("跳轉(zhuǎn)到首頁(yè)")),
      ),

??Getx跳轉(zhuǎn)方式

Get.offAll( const Tabs(index: 4));
1.5.跳轉(zhuǎn)到下一個(gè)頁(yè)面的,但是沒(méi)有返回按鈕(一般應(yīng)用于閃屏頁(yè),登錄頁(yè)面等)
Get.off(Login());

2. 設(shè)置路由的封裝類

main類中的RoutersPageVC.routers封裝文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-596442.html

import 'package:get/get.dart';
import './login_VC.dart';
import './shop_VC.dart';
import './middle_VC.dart';

class RoutersPageVC {
  static final routers = [
    GetPage(
        name: "/login_VC",
        page: () => const LoginVC(),
        transition: Transition.leftToRight //設(shè)置單個(gè)頁(yè)面跳轉(zhuǎn)的方式
        ),
    GetPage(
        name: "/shop_VC",
        page: () => const ShopPageVC(),
        middlewares: [MiddlePageVC()],//設(shè)置中間件(GetPage),可以根據(jù)優(yōu)先級(jí)設(shè)置多個(gè)中間件
        ),
  ];
}

3.路由封裝類中的中間件?MiddlePageVC類的封裝

import 'package:flutter/material.dart';
import 'package:get/get.dart';
import './login_VC.dart';

//中間件(GetPage):可以做一些權(quán)限的判斷.例如用戶在跳轉(zhuǎn)到支付頁(yè)面,這個(gè)時(shí)候用戶沒(méi)有登錄,就可以使用中間件的方式進(jìn)行判斷,先讓用戶跳轉(zhuǎn)到中間件頁(yè)面.具體使用詳情如下:

class MiddlePageVC extends GetMiddleware {
  //需要繼承GetMiddleware

  @override
//需要實(shí)現(xiàn)系統(tǒng)的該方法
  RouteSettings? redirect(String? route) {
    // return null;表示跳轉(zhuǎn)到以前的路由
    //根據(jù)條件進(jìn)行判斷,滿足條件進(jìn)行跳轉(zhuǎn),否則不進(jìn)行跳轉(zhuǎn)
    return RouteSettings(name: "/login_VC",arguments: {});
  }
}

4.跳轉(zhuǎn)到對(duì)應(yīng)頁(yè)面時(shí)候,傳遞值的接收

import 'package:flutter/material.dart';
import 'package:get/get.dart';

class LoginVC extends StatefulWidget {
  const LoginVC({super.key});

  @override
  State<LoginVC> createState() => _LoginVCState();
}

class _LoginVCState extends State<LoginVC> {
  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    //直接通過(guò)Get就可以獲取上一個(gè)頁(yè)面?zhèn)髦?    print("獲取傳值:${Get.arguments["dataId"]}");
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("登錄頁(yè)面導(dǎo)航"),
      ),
      body: Container(
        child: Text("登錄頁(yè)面"),
      ),
    );
  }
}

到了這里,關(guān)于Flutter中GetX系列九--路由/頁(yè)面跳轉(zhuǎn),傳值,中間件(GetPage)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • flutter使用getx進(jìn)行數(shù)據(jù)狀態(tài)管理,實(shí)現(xiàn)頁(yè)面響應(yīng)式

    flutter使用getx進(jìn)行數(shù)據(jù)狀態(tài)管理,實(shí)現(xiàn)頁(yè)面響應(yīng)式

    無(wú)論是什么樣的應(yīng)用,都還是需要最基礎(chǔ)的數(shù)據(jù)來(lái)支撐的,而且不同的頁(yè)面之間可能需要共享數(shù)據(jù)狀態(tài),這就顯得數(shù)據(jù)狀態(tài)管理非常有必要了。因?yàn)槲疫@里使用了get依賴庫(kù),所以就可以直接在項(xiàng)目中使用getx來(lái)管理狀態(tài),不想再使用別的框架了。而且getx使用起來(lái)也挺方便的。

    2024年01月22日
    瀏覽(38)
  • Flutter中GetX系列六--GetxController/GetView使用詳情

    在實(shí)際的項(xiàng)目開發(fā)過(guò)程中,我們不可能把UI代碼、業(yè)務(wù)邏輯都放在一起處理,這樣對(duì)項(xiàng)目的架構(gòu)、代碼的可讀性、后期的維護(hù)將會(huì)是致命的,好在 GetX 為我們提供了 GetxController , GetxController 主要的作用是用于UI代碼與業(yè)務(wù)邏輯分離開來(lái)。 這里主要講解使用 GetxController 動(dòng)態(tài)獲取

    2024年02月10日
    瀏覽(25)
  • 初識(shí)express/路由/中間件

    初識(shí)express/路由/中間件

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???????? ? ? ? ?

    2024年02月11日
    瀏覽(44)
  • GO——gin中間件和路由

    GO——gin中間件和路由

    中間件 參考:https://learnku.com/articles/66234 結(jié)構(gòu) 中間件是函數(shù) 中間件函數(shù)被放在調(diào)用鏈上 調(diào)用鏈的末尾是路由path對(duì)應(yīng)的函數(shù) 執(zhí)行過(guò)程 net/http包調(diào)用到gin的serverHTTP 參考:go/pkg/mod/github.com/gin-gonic/gin@v1.7.7/gin.go:506 通過(guò)path找到路由對(duì)應(yīng)的處理鏈,賦值給context 參考:go/pkg/mod/git

    2024年01月17日
    瀏覽(22)
  • 【node.js從入門到精通】使用express創(chuàng)建web服務(wù)器,路由,進(jìn)行中間件的創(chuàng)建鏈接路由及其他中間件

    【node.js從入門到精通】使用express創(chuàng)建web服務(wù)器,路由,進(jìn)行中間件的創(chuàng)建鏈接路由及其他中間件

    目錄 前言 初識(shí)express 使用express創(chuàng)建基本的web服務(wù)器 初識(shí)express路由 路由匹配概念 路由模塊化 中間件 中間件和路由的區(qū)別 定義中間件函數(shù) 中間件作用? ?局部生效中間價(jià) 中間件分類 ?1.應(yīng)用級(jí)別中間件 ?2.路由級(jí)別的中間件 ?3.錯(cuò)誤級(jí)別中間件 ?4.內(nèi)置中間件 ?5.自定義中間

    2024年02月02日
    瀏覽(63)
  • 消息中間件系列 - RocketMQ

    消息中間件系列 - RocketMQ

    本內(nèi)容僅用于個(gè)人學(xué)習(xí)筆記,如有侵?jǐn)_,聯(lián)系刪除 【尚硅谷】RocketMQ教程丨深度掌握MQ消息中間件_嗶哩嗶哩_bilibili 1 、MQ簡(jiǎn)介 MQ , Message Queue ,是一種提供 消息隊(duì)列服務(wù) 的中間件,也稱為消息中間件,是一套提供了消息生產(chǎn)、存儲(chǔ)、消費(fèi)全過(guò)程API的軟件系統(tǒng)。消息即數(shù)據(jù)。

    2024年02月16日
    瀏覽(23)
  • PHP Laravel 路由、中間件、數(shù)據(jù)庫(kù)等例子

    以下是使用Laravel框架時(shí)的一些常見示例: 1. 路由(Routes): // 定義基本路由 Route::get(\\\'/home\\\', \\\'HomeController@index\\\'); // 帶有參數(shù)的路由 Route::get(\\\'/user/{id}\\\', \\\'UserController@show\\\'); // 路由組 Route::middleware([\\\'auth\\\'])-group(function () { ? ? Route::get(\\\'/dashboard\\\', \\\'DashboardController@index\\\'); ? ? Route::pos

    2024年02月16日
    瀏覽(37)
  • express學(xué)習(xí)筆記5 - 自定義路由異常處理中間件

    express學(xué)習(xí)筆記5 - 自定義路由異常處理中間件

    修改router/index.js,添加異常處理中間件 完整代碼 創(chuàng)建 utils/constant:(為了方便后期統(tǒng)一維護(hù),單獨(dú)拉出來(lái)定義) 然后刷新http://localhost:8000/user ?這就完成了

    2024年02月14日
    瀏覽(31)
  • Go學(xué)習(xí)第十七章——Gin中間件與路由

    Go學(xué)習(xí)第十七章——Gin中間件與路由

    Gin框架允許開發(fā)者在處理請(qǐng)求的過(guò)程中,加入用戶自己的鉤子(Hook)函數(shù)。這個(gè)鉤子函數(shù)就叫中間件,中間件適合處理一些公共的業(yè)務(wù)邏輯,比如登錄認(rèn)證、權(quán)限校驗(yàn)、數(shù)據(jù)分頁(yè)、記錄日志、耗時(shí)統(tǒng)計(jì)等 即比如,如果訪問(wèn)一個(gè)網(wǎng)頁(yè)的話,不管訪問(wèn)什么路徑都需要進(jìn)行登錄,

    2024年02月07日
    瀏覽(20)
  • RabbitMQ系列教程消息中間件技術(shù)精講

    作者:禪與計(jì)算機(jī)程序設(shè)計(jì)藝術(shù) 消息中間件(Message Queue,MQ)是一種分布式應(yīng)用間通信的組件。它可以在不同的系統(tǒng)之間傳遞消息、數(shù)據(jù)或指令。在現(xiàn)代IT架構(gòu)中,越來(lái)越多的應(yīng)用需要相互通信,所以出現(xiàn)了消息隊(duì)列的概念。RabbitMQ是一個(gè)開源的AMQP實(shí)現(xiàn),是一個(gè)可靠、可擴(kuò)展

    2024年02月06日
    瀏覽(38)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包