Flutter GetX 插件 路由跳转笔记

6 阅读2分钟

Flutter GetX 插件 命名路由跳转笔记

Get.toNamed

打开新页面

A=>B		[A]=>[A,B]

[GETX] GOING TO ROUTE /B
Flutter.B.initState()
[GETX] Instance "BLogic" has been created
[GETX] Instance "BLogic" has been initialized

Get.back

关闭当前页、并返回上页

A<=B       [A,B]=>[A]

[GETX] CLOSE TO ROUTE /B
[GETX] "BLogic" onDelete() called
[GETX] "BLogic" deleted from memory
Flutter.B.dispose()

Get.offNamed

打开新页面、替换当前页

A=>B=>C     [A,B]=>[A,C]

[GETX] REPLACE ROUTE /B

[GETX] NEW ROUTE /C
Flutter.C.initState()
[GETX] Instance "CLogic" has been created
[GETX] Instance "CLogic" has been initialized

Flutter.B.dispose()
[GETX] "BLogic" onDelete() called
[GETX] "BLogic" deleted from memory

Get.offAndToNamed

关闭当前页 打开新页面

A=>B=>C      [A,B]=>[A,C]

[GETX] CLOSE TO ROUTE /B
[GETX] "BLogic" onDelete() called
[GETX] "BLogic" deleted from memory

[GETX] GOING TO ROUTE /C
Flutter.C.initState()
[GETX] Instance "CLogic" has been created
[GETX] Instance "CLogic" has been initialized

Flutter.B.dispose()

Get.offAllNamed

打开新页面、倒序清空路由

A1=>B=>C  ——>  A2     [A1,B,C]=>[A2]

[GETX] GOING TO ROUTE /A2

[GETX] REMOVING ROUTE /C
[GETX] REMOVING ROUTE /B
[GETX] REMOVING ROUTE /A1

Flutter.A2.initState()
[GETX] Instance "A2Logic" has been created
[GETX] Instance "A2Logic" has been initialized

Flutter.B.dispose()
Flutter.A1.dispose()
Flutter.C.dispose()

[GETX] "A1Logic" onDelete() called
[GETX] "A1Logic" deleted from memory
[GETX] "BLogic" onDelete() called
[GETX] "BLogic" deleted from memory
[GETX] "CLogic" onDelete() called
[GETX] "CLogic" deleted from memory

Get.offNamedUntil

打开新页面、插入指定路由位置后方,原后方其它页面被清除

A=>B1=>C -->B2 s=A   [A,B1,C]=>[A,B2]

[GETX] GOING TO ROUTE /B2

[GETX] REMOVING ROUTE /C
[GETX] REMOVING ROUTE /B1

Flutter.B2.initState()
[GETX] Instance "B2Logic" has been created
[GETX] Instance "B2Logic" has been initialized

Flutter.B1.dispose()
Flutter.C.dispose()

[GETX] "BLogic" onDelete() called
[GETX] "BLogic" deleted from memory
[GETX] "CLogic" onDelete() called
[GETX] "CLogic" deleted from memory


A=>B1=>C --B2 s=B1  [A,B1,C]=>[A,B1,B2]

[GETX] GOING TO ROUTE /B2

[GETX] REMOVING ROUTE /C

Flutter.B2.initState()

Flutter.C.dispose()
[GETX] "CLogic" onDelete() called
[GETX] "CLogic" deleted from memory

Get.until

查找并跳转已打开页面、不符合条件将被删除

A=>B=>C   ——>A   [A,B,C]=>[A]

[GETX] CLOSE TO ROUTE /C
[GETX] "CLogic" onDelete() called
[GETX] "CLogic" deleted from memory

[GETX] CLOSE TO ROUTE /B
[GETX] "BLogic" onDelete() called
[GETX] "BLogic" deleted from memory

Flutter.C.dispose()
Flutter.B.dispose()


/// Get.until((Route r){
///   return r.settings.name == "/wardSelectPage"; // 返回指定页面
///   return r.isFirst; // 回到第一个页面
/// });