2023年5月7日 星期日

flutter學習-GetX (路由整理)

在Flutter中,Getx是一個輕量級的框架,提供了多種管理狀態和路由的方法。其中,Getx提供了幾種不同的路由管理方法:

(1)Get.to()
使用Get.to()方法來導航到一個新的屏幕,通過傳遞一個Widget來創建屏幕。
(1-1)Get.to() 跳至某一頁。


例:Get.to(Page2())和 Get.to(() => Page2()); <=官方推薦第二種。


(1-2)Get.to(()=>PageName(),arguments:'要放的參數')


例:Get.to(Page2(),arguments:'value')和 Get.to(() => Page2(),arguments:'value');


例:Get.to(Page2())和 Get.to(() => Page2()); <=官方推薦第二種。


取得參數的方法:final arguments = Get.arguments;



(2)Get.off() 和Get.offAll()

(2-1)Get.off()方法:


這個方法通常用於將當前屏幕替換為新的屏幕,同時關閉當前屏幕(關閉前一個)。使用這個方法時,新屏幕將成為當前屏幕,並且原來的屏幕將從堆棧中刪除。這種方式最常用於導航到一個全新的屏幕,並且不需要返回上一個屏幕的情況。

例:Get.off(() => Page2())

(2-2)Get.offAll()方法:

這個方法通常用於將當前屏幕替換為一組新的屏幕,同時刪除所有之前在堆棧中的屏幕(關閉全部)。使用這個方法時,新的屏幕將成為當前屏幕,並且堆棧中的所有屏幕都將被刪除。這種方式最常用於回到應用程序的主屏幕或重新啟動應用程序的情況。

例:Get.offAll(() => Page2())

(2-3)加參數的方法,與前面1-2類同。


(3)Get.toNamed() 、Get.offNamed()、Get.offAllNamed()
這三種方法與上面的用法類同,主要用在命由路由上面。命名路由是一種路由管理方法,它是通過給每個屏幕一個唯一的名稱,來實現路由導航的方式。命名路由與使用Navigator類導航的傳統方法相比,可以讓您更容易地管理和組織應用程序中的路由。通過使用命名路由,您可以在應用程序中定義一組名稱,然後在需要導航到不同屏幕時,只需使用其名稱即可,而不必手動管理路由堆棧。這使得應用程序的代碼更加清晰和易於維護。

(3-1)Get.toNamed()方法: 這個方法用於導航到命名路由。它將根據路由名稱將新屏幕推入堆棧中。如果路由名稱已經存在於堆棧中,則這個方法將將堆棧中所有路由刪除,並將新路由推入堆棧中。這種方式類似於使用Get.to()方法導航到一個新的屏幕。
(3-2)Get.offNamed()方法: 這個方法用於導航到命名路由,並將當前屏幕替換為新屏幕。它將刪除當前屏幕,並將新路由推入堆棧中。這種方式類似於使用Get.off()方法替換當前屏幕。(3-3)Get.offAllNamed()方法: 這個方法用於導航到命名路由,同時刪除所有之前在堆棧中的屏幕。使用這個方法時,新的路由將成為當前屏幕,並且堆棧中的所有路由都將被刪除。這種方式類似於使用Get.offAll()方法回到應用程序的主屏幕或重新啟動應用程序。


(4)Get.offUntil()和Get.offAndToNamed()
(4-1)Get.offUntil()方法
用於將當前屏幕從堆棧中移除,然後依次移除所有在當前屏幕之上的屏幕,直到指定的屏幕為止。語法如下:

Get.offUntil( 
  GetPageRoute(
    page: () => MyScreen(),
    settings: RouteSettings(name: '/myRoute'),
  ),
  ModalRoute.withName('/home'),
);

(4-2)Get.offAndToNamed()

這個例子中,我們定義了一個名為'/myRoute'的新路由,然後使用Get.offUntil()方法從當前屏幕開始,將所有在'/home'路由之上的屏幕全部移除,直到'/myRoute'路由被加入到路由堆棧中為止。

Get.offAndToNamed()方法可以將當前屏幕從堆棧中移除,然後將指定的屏幕加入到堆棧中。語法如下:
Get.offAndToNamed('/myRoute');



參考網址:



沒有留言:

張貼留言