compositionLocalOf 与 staticCompositionLocalOf 的简单理解与使用

1 创建

ini 复制代码
var UserNameLocal = compositionLocalOf {  "" }

var passwordLocal = staticCompositionLocalOf { "" }

2 使用

csharp 复制代码
var userName by mutableStateOf("")
var password by mutableStateOf("")
scss 复制代码
 CompositionLocalProvider(
       UserNameLocal provides userName,
       PasswordLocal provides password
 ) {}

那么在CompositionLocalProvider的子节点中就可以通过

复制代码
PasswordLocal.current
UserNameLocal.current

来访问设置的数据。

当修改userName 跟 password的数据也会触发刷新。

3 compositionLocalOf 与 staticCompositionLocalOf 的不一样的地方是:compositionLocalOf数据发生改变的时候只重组调用他的地方。staticCompositionLocalOf是直接全量重组。(未验证)

4 个人理解:

如果只是上面的功能的话,我直接全局定义一个状态变量,也可以访问到对应的数据,改变数据的时候也会触发重组。那compositionLocalOf的优点是什么呢?

优点:限制了访问范围,只有在CompositionLocalProvider的子节点中可以访问到。

相关推荐
奔跑的架构师5 分钟前
[A-49]ARMv9/v8-PSCI接口规范与工作流程简介
android·linux·arm开发·arm
AFinalStone30 分钟前
Android 7系统国际化(七)Resources 与 AssetManager 源码剖析
android·国际化·local
Android-Flutter1 小时前
Android 内存泄漏详解
android·kotlin
Android-Flutter2 小时前
android Handler , Looper , Message , MessageQueue 详解
android·kotlin
雨声不在2 小时前
docker-android 重启后镜像起不来
android·docker·容器
阿pin2 小时前
Android随笔-Framework
android·framework
达达尼昂3 小时前
Flutter AI Harness 如何让 Agent 参与软件开发全流程
android·人工智能·后端
sRect3 小时前
用ESP32-S3开发板开发一个接收消息的BB机
android·serverless·嵌入式
AFinalStone4 小时前
Android 7系统无障碍服务(二)AccessibilityManagerService 启动与初始化
android·无障碍服务
小孔龙4 小时前
BufferQueue 多缓冲与背压
android