一 Getx GetView
GetView
只是对已注册的Controller
有一个名为controller
的getter的const Stateless
的Widget,如果我们只有单个控制器作为依赖项,那我们就可以使用GetView
,而不是使用StatelessWidget
,并且避免了写Get.Find()
。
1. 第一步:继承自GetView并使用状态管理
import 'package:flutter/material.dart';
import 'package:flutter_getx_example/GetViewAndGetWidgetExample/GetViewCountController.dart';
import 'package:get/get.dart';
class GetViewAndGetWidgetExample extends GetView<GetViewCountController> {
@override
Widget build(BuildContext context) {
Get.put(GetViewCountController());
// Get.create(() => GetViewCountController());
return Scaffold(
appBar: AppBar(
title: Text("GetX GetView"),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Obx(() => Text(
"count的值为: ${controller?.count}",
style: TextStyle(
color: Colors.red,
fontSize: 30
),
)),
SizedBox(height: 20,),
ElevatedButton(
onPressed: () {
controller.increment();
},
child: Text("点我加1"))
],
),
),
);
}
}
二 Getx GetWidget
它 “缓存 “了一个Controller,由于_cache_,不能成为一个 “const Stateless”(因为_cache_,所以不能成为一个
const Stateless
)。当我们使用Get.create(()=>Controller())会在每次调用时生成一个新的
Controller Get.find()不常用