etView 只是对已注册的 Controller 有一个名为 controller 的getter的 const Stateless 的
Widget,如果我们只有单个控制器作为依赖项,那我们就可以使用 GetView ,而不是使用
StatelessWidget ,并且避免了写 Get.Find() 。
GetView如何使用
GetView的使用方法非常简单,只是要将你的视图层继承自 GetView 并传入需要注册的控制器并
Get.put() 即可;

GetView结合GetxController使用

第一步 、定义一个CountController
import 'package:get/get.dart';

class CountController extends GetxController {
var count = 0.obs;
@override
void onInit() {
super.onInit();
print("onInit");
} @override
void onReady() {
super.onReady();
print("onReady");
} @override
void onClose() {
print("onClose");
} void inc() {
count++;
update(['first_count']);
} void dec() {
count--;
update();
}
}
第二步 、继承GetView并使用状态管理
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import '../../controller/count.dart'; class ShopPage extends GetView<CountController> {
const ShopPage({super.key});
@override
Widget build(BuildContext context) {
//如果第一次使用还需要put
Get.put(CountController()); //必须
return Scaffold(
appBar: AppBar(
title: const Text("shop"),
),
body: Center(
child: Column(
children: [
Obx(() => Text("${controller.count}")), //controller都一样
ElevatedButton(
onPressed: () {
controller.inc();
},
child: const Text("加1"))
],
),
),
);
}
}

GetView Binding结合GetxController使用

第一步 、定义一个shopController
import 'package:get/get.dart';

class shopController extends GetxController {
var count = 0.obs;
@override
void onInit() {
super.onInit();
print("onInit");
} @override
void onReady() {
super.onReady();
print("onReady");
} @override
void onClose() {
print("onClose");
} void inc() {
count++;
update(['first_count']);
}
}
第二步 、定义一个shop Binding
import 'package:get/get.dart';
import '../controllers/shop.dart';
class ShopBinding implements Bindings{
@override
void dependencies() {
// TODO: implement dependencies
Get.lazyPut<ShopController>(() => ShopController());
}
}
第三步 、路由中绑定Binding
import 'package:get/get.dart';
import '../pages/tabs.dart';
import '../pages/shop.dart';
import '../middlewares/shopMiddleware.dart';
import "../binding/shop.dart"; class AppPage {
static final routes = [
GetPage(name: "/", page: () => const Tabs()),
GetPage(
name: "/shop",
page: () => const ShopPage(),
binding: ShopBinding(), //必须
middlewares: [ShopMiddleWare()]),
];
}
第四步 、继承GetView并使用状态管理
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import '../controllers/shop.dart'; //直接使用
class ShopPage extends GetView<ShopController> {
const ShopPage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('Title'),
),
body: Center(child: Obx(() {
return Text("${controller.counter}");
})),
);
}
}

生命周期

import 'package:get/get.dart';

class CountController extends GetxController {
var count = 0.obs;
@override
void onInit() {
super.onInit(); // 初始化操作...
print("onInit");
} @override
void onReady() {
super.onReady(); //页面加载完成后的操作...
print("onReady");
} @override
void onClose() {
print("onClose");
super.onClose(); //资源释放、取消订阅等操作...
} void inc() {
count++;
update(['first_count']);
} void dec() {
count--;
update();
}
}

GetView介绍 以及 GetxController生命周期的更多相关文章

  1. FileNet P8 工作流生命周期管理和 Process Engine API 应用介绍

    摘录:https://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0902wangzheng/ FileNet P8 工作流生 ...

  2. Android开发之Activity的生命周期以及加载模式

    本篇博客就来好好的搞一下Activity的生命周期,如果搞过iOS的小伙伴的话,Activity的生命周期和iOS中ViewController的生命周期非常类似.生命周期,并不难理解.一个人的生命周 ...

  3. Android之Fragment学习笔记②(Fragment生命周期)

    一. Fragment生命周期图                                  二.Fragment生命周期方法介绍 Fragment的生命周期和activity生命周期很像,其生 ...

  4. flex 生命周期 ibm引用

    Flex 本质 提起 Flex 我们不得不追述其发展历史以及两个很重要的名词或者说技术,那就是 Flash 和 Flash Player.Flash 是 Adobe 推出的基于时间轴的交互式矢量图和 ...

  5. (转)php的扩展和嵌入--php的生命周期与变量详述

    本文转自http://blog.csdn.net/cedricliang/article/details/17247749?9435:这是在我想在js的循环中加入一段php,这段php代码会在每次执行 ...

  6. [译] ASP.NET 生命周期 – ASP.NET 请求生命周期(四)

    不使用特殊方法来处理请求生命周期事件 HttpApplication 类是全局应用类的基类,定义了可以直接使用的一般 C# 事件.那么使用标准 C# 事件还是特殊方法那就是个人偏好的问题了,如果喜欢, ...

  7. Android-管理Activity生命周期 -开始一个Activity

    很多程序都是从main()方法开始启动的,和其他程序不同,android是在activity生命周期的特定状态的特定回调方法中初始化代码的.activity启动和销毁的时候都用很多回调方法. 这里将要 ...

  8. ReactJS入门3:组件的生命周期

    本文主要介绍组件的生命周期. 组建的生命周期主要分为3个:Mounting.Updating.Unmounting. 1. Mounting:组件被加载到DOM     在本阶段,主要有三个方法: 1 ...

  9. Java 多线程(三)—— 线程的生命周期及方法

    这篇博客介绍线程的生命周期. 线程是一个动态执行的过程,它也有从创建到死亡的过程. 线程的几种状态 在 Thread 类中,有一个枚举内部类: 上面的信息以图片表示如下: 第一张图: 第二张图:把等待 ...

  10. Spring之Bean的生命周期详解

      通过前面多个接口的介绍了解了Bean对象生命周期相关的方法,本文就将这些接口的方法串起来,来了解Bean的完整的生命周期.而介绍Bean的生命周期也是面试过程中经常会碰到的一个问题,如果不注意就跳 ...

随机推荐

  1. python~windows自动化工具 uiautomation库

    微软提供了关于自动化操作PC端桌面应用程序的工具,官方描述为: Microsoft UI Automation is an accessibility framework that enables W ...

  2. 基于SpringBoot+Netty实现即时通讯(IM)功能

    简单记录一下实现的整体框架,具体细节在实际生产中再细化就可以了. 第一步 引入netty依赖 SpringBoot的其他必要的依赖像Mybatis.Lombok这些都是老生常谈了 就不在这里放了 &l ...

  3. js前端操作,c#后端下发xml文件

    前端: var xmlLanguageDoc; $.ajax({         url: "/GiveMeXML",//此处可随意定义,不一定是路径.在c# ,请求被捕获后,由c ...

  4. Kubernetes 迁移节点 Kubelet 数据存储目录

    1.概述 默认Kubernetes节点Kubelet数据目录在/var/lib/kubelet,如果在部署前没有做好规划,其实默认就存储在系统盘/分区下了,这可能会引发一些问题: 磁盘空间限制: 系统 ...

  5. Codeforces Round #704 (Div. 2) A~C题解

    写在前边 链接:Codeforces Round #704 (Div. 2) D就不补了,大fst场. A. Three swimmers 链接:A题链接 题目大意: 给定三个游泳者的到达岸边的周期, ...

  6. Nginx自定义日志中时间格式

    背景 工作需要对接内部的日志中台,对日志打印有固定的格式要求,为了使Nginx的access日志也能被采集,需要对日志格式进行自定义,要求日志格式为: yyyy-MM-dd HH:mm:ss.SSS ...

  7. CentOS6-详细启动流程

    CentOS6的启动流程 第一步:硬件启动阶段 本步的流程: 1. 打开电源: 2. POST自检: 3. BIOS逐一排查设备启动顺序,如果是硬盘启动,读取硬盘的MBR的BootLoader.(这里 ...

  8. 旺店通·企业奇门和用友BIP接口打通对接实战

    旺店通·企业奇门和用友BIP接口打通对接实战 接通系统:旺店通·企业奇门 旺店通是北京掌上先机网络科技有限公司旗下品牌,国内的零售云服务提供商,基于云计算SaaS服务模式,以体系化解决方案,助力零售企 ...

  9. Web前端工程的装机必备软件

    前言 最近作者的电脑 C 盘变红了,这让我很难受(有点小强迫症),所以准备重新安装下系统,顺便把 C 盘扩大点. 注意: 操作系统是 windows 11 23H2. 所有的命令行都是使用 Windo ...

  10. 又有新框架上线了,测试、AI 通通有「GitHub 热点速览」

    本周热点之一可能就是 Apple 刚开源便获得 8k+ star 的机器学习框架 mlx,顺带官方开源的 mlx-example(示例仓)也在热门榜上有一席之位,据说它已经跑通了大模型 Llama 7 ...