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的子节点中可以访问到。

相关推荐
雯0609~3 分钟前
PHP:将关联数组转换为索引数组的完整示例
android·oracle·php
Wgllss14 分钟前
Android提升开发测试效率,程序员应该多干了些什么?
android·架构·android jetpack
兰琛21 分钟前
Android免费实现excel文件(简单)转为PDF文件
android·pdf·excel
斗锋在干嘛35 分钟前
Android 回答视频边播放边下载的问题
android·jvm·音视频
斗锋在干嘛35 分钟前
Android 中Intent 相关问题
android
追梦-北极星42 分钟前
android wifi 热点获取client的名称
android·android wifi
blog_jenny42 分钟前
Android 14 、15动态申请读写权限实现 (Java)
android·java·gitee
顾林海43 分钟前
Flutter容器组件深度解析
android·前端·flutter
Yang-Never3 小时前
Open GL ES -> SurfaceView + 自定义EGL实现OpenGL渲染框架
android·开发语言·图像处理·android studio
l and4 小时前
适配 AGP8.5,构建参数 targetSdk 等配置(六)
android