1 find
Get.find(),获取之前实例化过的controller
2 put
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永远生效, 不被删除
适合 没有登出 的业务使用, 否则, 下一个登录的用户还显示上一个用户的信息
Get.put(() => MessageController(), permanent: true);
(2) fenix: true
lazyPut可以设置fenix属性, 默认为false,
无论是true或false, controller都会随Get.off() 销毁,
为true则下次使用时重新创建一个跟之前所有值一样的controller, 但实例对象不同
Get.lazyPut(() => MessageController(), fenix: true);