企業(yè)網(wǎng)站開發(fā)注意什么百度電話查詢
路由管理是插件GetX常用功能之一,為什么說之一呢?因?yàn)镚etX的功能遠(yuǎn)不止路由管理這么簡單。
GetX的重要功能如下:
1、路由管理 | 2、狀態(tài)管理 | 3、國際化 | 4、主題 | 5、GetUtil工具 | 6、dialog 彈框 | 7、snackbar |
其實(shí)上面功能介紹的還是不夠詳細(xì),GetX還支持網(wǎng)絡(luò)請求等
今天主要介紹一下GetX的路由管理
首先需要將Flutter項(xiàng)目入口MaterialApp替換成GetX提供的GetMaterialApp,代碼示例如下:
舊
return MaterialApp(home: MyHomePage(),
);
新
return GetMaterialApp(home: MyHomePage(),
);
接下來就是創(chuàng)建路由管理類 router_util.dart,這個(gè)類負(fù)責(zé)統(tǒng)一把所有頁面進(jìn)行路由設(shè)置,GetX設(shè)置路由代碼如下:
GetPage(name: "/login", page: () => LoginPage()),
GetPage 便是設(shè)置一個(gè)類的路由
"/login" 為使用過程中的Key,page: ?為指向的頁面。
下面是路由管理類的完整代碼
import 'package:get/get.dart';import '../view/login/forget/forget_view.dart';
import '../view/login/login_view.dart';
import '../view/login/register/register_view.dart';
import '../view/main/tab_bar/tab_bar_view.dart';List<GetPage> get pages => [GetPage(name: "/login", page: () => LoginPage()),GetPage(name: "/tabbar", page: () => TabBarPage()),GetPage(name: "/register", page: () => RegisterPage()),GetPage(name: "/password", page: () => ForgetPage()),];
我們將路由管理設(shè)置完以后,下面就是路由注入了,注入代碼簡單,便是將pages放入到的getPages中即可。當(dāng)然當(dāng)我們使用路由管理后,我們需要設(shè)置一下程序入口initialRoute,完整代碼如下:
return GetMaterialApp(getPages: pages,initialRoute: "/login",
);
到此就完成了路由管理的配置,下面介紹一下路由的使用,推薦使用別名路由。
普通路由
頁面跳轉(zhuǎn)
Get.to(RegisterPage());
帶參數(shù)
Get.to(RegisterPage(),arguments: "范型");
arguments 未范型,什么類型都可以
參數(shù)獲取
dynamic arguments = Get.arguments;
off: 進(jìn)入下一個(gè)界面,且導(dǎo)航?jīng)]有返回
Get.off(RegisterPage());
offAll: 進(jìn)入下一個(gè)界面并取消之前的所有路由
Get.offAll(RegisterPage());
back: 返回
Get.back();
返回時(shí)帶參數(shù)
Get.back(result: '返回參數(shù)');
result: 也為范型,可為任何類型
獲取參數(shù)
var result = await Get.to(RegisterPage());
別名路由
使用方法與普通路由基本相同,只是方法上多了?Named
路由跳轉(zhuǎn)
Get.toNamed("/register");
帶參數(shù)
Get.toNamed("/register",arguments: "范型");
也可以想Vue里面的方式進(jìn)行跳轉(zhuǎn)和傳參(不推薦,使用不方便)
Get.toNamed("/register?id=1&name=王哪跑");
獲取參數(shù)和普通路由一致
使用Vue方式傳參獲取參數(shù)方式如下
Get.parameters['id']
進(jìn)入下一個(gè)界面并取消之前的所有路由
Get.offAllNamed("/tabbar");
返回和返回帶參數(shù)使用方式與普通路由保持一致。
到此就完成了GetX路由管理的使用。
GetX功能很強(qiáng)大,路由管理是比較常用的功能。
GetX后續(xù)功能將會持續(xù)介紹使用,下一片文章會介紹一下GetX狀態(tài)管理