1 find

Get.find(),获取之前实例化过的controller

2 put

Get.put(), 立即把controller实例化

3 lazyput

Get.lazyput() 不会立刻实例化controller, 等到页面调用find后才会put实例化, 才会执行init()函数

Get.lazyPut 注入的实例的生命周期是和在Get.find时的上下文所绑定。

4 controller的生命周期

默认情况下,GetX 会在实例未使用时删除它们。这意味着:如果屏幕 1 具有controller1,屏幕 2 具有controller2,并且您从堆栈中删除了第一条路由(例如,如果您使用 Get.off() 或 Get.offNamed()),则controller 1 将失去其用途,因此它将被删除。

(1) permanent: true

put里可以设置permanent属性, 默认为false, 为ture则controller永远生效, 不被删除
适合 没有登出 的业务使用, 否则, 下一个登录的用户还显示上一个用户的信息

  1. Get.put(() => MessageController(), permanent: true);

(2) fenix: true

lazyPut可以设置fenix属性, 默认为false,
无论是true或false, controller都会随Get.off() 销毁,
为true则下次使用时重新创建一个跟之前所有值一样的controller, 但实例对象不同

  1. Get.lazyPut(() => MessageController(), fenix: true);