首页 > 其他分享 >flutter 生命周期

flutter 生命周期

时间:2024-01-16 12:15:34浏览次数:23  
标签:Widget 生命周期 title 部件 initState override super flutter

Stateless无状态组件

//Stateless无状态组件比较简单就是一个 build 函数,每次外部新状态压入,进行调用
//当Widget不再需要时,比如在页面切换或者被移除时,Flutter会销毁这些Widget。
//对于StatelessWidget来说,它没有内部状态(即无可变的变量)

class LeftPage extends StatelessWidget {
  const LeftPage({super.key, required this.title});

 final String title;
@override Widget build(BuildContext context) { return Text(title); } }

createState 创建状态

//createState 创建状态
class LeftPage extends StatefulWidget {

  final String title;
  const LeftPage({super.key, required this.title});

//1、当您创建一个statefulWidget时,这将自动创建。
  @override
  State<LeftPage> createState() => _LeftPageState();
}

class _LeftPageState extends State<LeftPage> {


  //2、initState 初始化状态
  //在小部件创建之前和构建方法之前调用 ; 一般用来初始状态数据
  @override
  void initState() {
    // TODO: implement initState
    super.initState();
      print('-------------------------initState');

  }

  //3、didChangeDependencies 依赖改变
  // 当每个依赖项更改此状态时,调用此方法
  // 在构建小部件的第一次调用initState()之后,也可以立即调用它。
  @override
  void didChangeDependencies() {
    print('-------------------------didChangeDependencies');
    super.didChangeDependencies();
  }

  // 4. 当小部件重新构建时,将调用此方法。
  // 这个用于取消订阅在initState()中订阅的旧对象,
  // 并在更新的小部件配置需要替换对象时订阅新对象。
  @override
  void didUpdateWidget(covariant LeftPage leftPage) {
    print('-------------------------didUpdateWidget');
    // 更新Widget配置逻辑
    super.didUpdateWidget(leftPage);
  }

  // 5、deactivate 停用
  // 当小部件暂时从小部件树中移除时,将调用此方法。
  @override
  void deactivate() {
    print('-------------------------deactivate');
    super.deactivate();
  }

  // 6、dispose 释放资源
  // 当小部件从小部件树中永久移除时
  @override
  void dispose() {
    print('-------------------------dispose');
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return  Text(widget.title);
  }
}

 

 

标签:Widget,生命周期,title,部件,initState,override,super,flutter
From: https://www.cnblogs.com/xbinbin/p/17967361

相关文章

  • 《基础概念篇》生命周期
    生命周期Vue.js是一个JavaScript框架,通过使用Vue实例来创建和管理Web应用程序。Vue实例具有一系列的生命周期钩子函数,它们在Vue实例的不同阶段被调用,允许您在不同阶段执行特定的操作。以下是Vue生命周期的不同阶段和对应的钩子函数:创建阶段(Creation)beforeCreate:在实例被创......
  • 安装android Studio 以及flutter
    开发装备的环境配置java环境系统变量里面添加JAVA_HOME软后在path中添加java环境配置查看java是否安装成功 然后安装 系统变量添加 ANDROID_HOME  在path中添加 然后在path中添加flutter环境变量win+r/cmd ---flutterdoctor打开网址 https://......
  • Flutter开发:Visual Studio Code使用
    1创建您的第一个Flutter项目启动VisualStudioCode并打开命令面板(使用F1、Ctrl+Shift+P或Shift+Cmd+P)。开始输入“flutternew”。选择Flutter:NewProject命令。2使用Refactor抽取函数2.1右键点击要重构的代码段(在本例中为Text),然后从下拉菜单中选择Refactor.........
  • Flutter Getx 路由管理
    GetX为我们封装了Navigation,无需context可进行跳转,使用GetX进行路由跳转非常的简单,只需要调用Get.to()即可进行路由跳转,GetX路由跳转简化了跳转动画设置、动画时长定义、动画曲线设置。Get.to()实现普通路由跳转一、设置应用程序入口当我们导入依赖后,在应用程序......
  • flutter android grandle buid.gradle
    buildsettingbuildscript{ext.kotlin_version='1.5.20'repositories{//google()//mavenCentral()maven{url'https://maven.aliyun.com/repository/central'}maven{url'https://maven.aliyun.c......
  • Flutter 自定义一个右侧可滑动 左侧为按钮的组件
    Flutter自定义一个右侧可滑动左侧为按钮的组件vartopicList=["圈子话题1","圈子话题2","圈子话题3","圈子话题4-天气很好","圈子话题5","圈子话题6"];@overrideWidgetbuild(BuildContextcontext){returnSizedBox(height:40......
  • 集成 Firebase 后,Flutter IM SDK 在 Android 端不触发回调
    描述客户已集成FirebaseMessaging,Android平台FlutterIMSDK的不触发任何回调。分析(根因分析、需求分析)可能原因是客户构建了一个FlutterEngineinstance,导致SDK的FlutterEngineinstance失效了。解决方案找到以下java文件packages/firebase_messaging/firebase_me......
  • 抖音APP如何实现用户生命周期提升
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群近日,在火山引擎数智平台在北京举办的“超话数据:企业产品优化分享”的活动上,抖音策略产品经理分享了抖音产品提升用户生命周期的难点及解决办法。他提到,抖音产品优化涉及到性能、交互、内容和业务......
  • 软件生命周期管理
    ......
  • 软件生命周期模型定义与选择策略
    ......