首页 > 其他分享 >Android开发 Jetpack_Compose_6 附带效应

Android开发 Jetpack_Compose_6 附带效应

时间:2022-11-30 20:34:52浏览次数:43  
标签:Compose 附带 Jetpack 效应 作用域 Android LaunchedEffect 数据

前言

  附带效应是指LaunchedEffect、DisposableEffect、rememberCoroutineScope、rememberUpdatedState、produceState 、derivedStateOf的使用。附带效应这4个字在google官方文档上的表达与解释挺让人难以理解的。其实个人认为准确的描述应该是外部产生的数据向Compose状态作用域内传递。这里的外部数据是指网络请求数据、数据库数据、定时触发状态、子线程运算数据、Activity生命周期等等这些数据。

  在学了Compose的状态管理后可以明白,Compose的重组需要依靠mutableStateOf 。那为什么还需要有LaunchedEffect、DisposableEffect等等这些函数呢?理由如下:

  • 在Compose作用域里实现协程与异步操作,从而对一些资源的初始化与销毁进行异步操作
  • 接收外部数据回调,但是建议尽量选择用协程取代接口回调方法
  • 进一步的控制Compose重组的影响范围
  • 配合LifeCycle,让Compose对Activity的生命周期实现监听(这个其实与第二点其实是一样的,但是这里单独拿出来强调)

 

LaunchedEffect

 

 

 

 

 

 

 

End

标签:Compose,附带,Jetpack,效应,作用域,Android,LaunchedEffect,数据
From: https://www.cnblogs.com/guanxinjing/p/16939623.html

相关文章

  • 从零开始的docker和docker-compose打包上传自己的镜像
    步骤:项目准备1.下载一个干净的springboot项目,没有多余的依赖​​https://github.com/wangzixi-diablo/mySpringBoot​​2.进入项目文件夹,运行mvnspring-boot:run查看运行结......
  • Android Ndk does not contain any platforms?
    TheAndroidNDK'splatformdirectoryhasbeenobsoletesincer19.TheNDKteamremoveditaltogetherinr21inJanuary2021.Althoughitisobsolete,itcanst......
  • Android Drawable Selector 不生效?
    例:<?xmlversion="1.0"encoding="utf-8"?><selectorxmlns:android="http://schemas.android.com/apk/res/android"><itemandroid:drawable="@drawable/movie_......
  • composer 学习与推荐资料
    今天看了一下composer,前几天开始用包依赖,以前一直都是自己手动配。今天用了composer,要学习的话可以按照以下链接学习;1官方文档:​​http://docs.phpcomposer.com/​​2如果......
  • AndroidDevTools简介
      ​​http://www.androiddevtools.cn/​​AndroidDevTools简介AndroidDevTools官网地址:​​www.androiddevtools.cn​​收集整理Android开发所需的AndroidSDK、开发中......
  • Android Studio 简单介绍和使用问题小结
    AndroidStudio简单介绍和使用问题小结  Google在2013的I/O开发者大会上引入的该开发工具。现在已经更新到了0.5.8版本。现在github的很多项目都使用了AndroidStudio开......
  • JavaScript调用App原生代码(iOS、Android)通用解决方案
     实际场景场景:现在有一个H5活动页面,上面有一个登陆按钮,要求点击登陆按钮以后,唤出App内部的登录界面,当登录成功以后将用户的手机号返回给H5页面,显示出来。这个场景应......
  • Android AIDL相关
    AndroidAIDL相关AIDL是Android接口定义语言(AndroidInterfacedefinitionlanguage)它是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间的通信(IPC)接......
  • Unity用户手册-Unity与Android、iOS互相调用
        C#是以Assembly(汇编集)为一个基本单位组织代码的,dll就是一个assemble,dll之间有加载依赖顺序。dll是windows平台上的动态库,而so是linux平台上的动态库,最后.a是IOS......
  • Android 运行时权限终极总结
    目录​​一:基础&起因​​​​二:基本使用​​​​2.1 Activity当中的一般用法​​​​2.2Fragement中的用法​​​​三:注意事项和打电话例子​​​​3.1注意事项​​​​3......