我可以想到這 3 種使用 GetX 初始化值的方法
在宣告處初始化:
class StatusPane extends StatelessWidget {
final HomeController homeController = Get.find();
StatusPane({Key? key}) : super(key: key);
在初始化串列中:
class StatusPane extends StatelessWidget {
final HomeController homeController;
StatusPane({Key? key}) : homeController = Get.find(), super(key: key);
或在建構式中
class StatusPane extends StatelessWidget {
late final HomeController homeController;
StatusPane({Key? key}) : super(key: key) {
homeController = Get.find();
}
3之間有什么明顯的區別嗎?比如,一種方法會導致崩潰或錯誤嗎?還是一種更好的性能方式?還是它們實際上是相同的?如果不使用 GetX 會有什么不同,final HomeController homeController = HomeController()例如?還是很大程度上取決于個人喜好?
uj5u.com熱心網友回復:
這 3 個是相同的,但如果您想要更高的性能,您可以通過以下方法或 getter 獲得控制器:
HomeController get controller => GetInstance().find<HomeController>()
這樣,如果您使用 Get.lazyPut 而不是 Get.put,HomeController 及其生命周期(如 onInit、onReady 等)會在必要時被呼叫。否則,它會立即在建構式上呼叫。還有一個內置的 GetView 類,您可以使用它來代替 StatelessWidget。它有一個用于控制器的吸氣劑
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/439871.html
