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

相关推荐
2601_949833399 小时前
flutter_for_openharmony口腔护理app实战+预约管理实现
android·javascript·flutter
2603_9494621011 小时前
Flutter for OpenHarmony社团管理App实战:预算管理实现
android·javascript·flutter
王泰虎13 小时前
安卓开发日记,因为JCenter 关闭导致加载不了三方库应该怎么办
android
2601_9495430117 小时前
Flutter for OpenHarmony垃圾分类指南App实战:主题配置实现
android·flutter
2601_9498333918 小时前
flutter_for_openharmony口腔护理app实战+知识实现
android·javascript·flutter
晚霞的不甘18 小时前
Flutter for OpenHarmony从基础到专业:深度解析新版番茄钟的倒计时优化
android·flutter·ui·正则表达式·前端框架·鸿蒙
鸟儿不吃草18 小时前
android的Retrofit请求https://192.168.43.73:8080/报错:Handshake failed
android·retrofit
Minilinux201818 小时前
Android音频系列(09)-AudioPolicyManager代码解析
android·音视频·apm·audiopolicy·音频策略
李子红了时19 小时前
【无标题】
android
Android系统攻城狮20 小时前
Android tinyalsa深度解析之pcm_close调用流程与实战(一百零四)
android·pcm·tinyalsa·音频进阶·音频性能实战·android hal