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

相关推荐
后端码匠6 小时前
MySQL 8.0安装(压缩包方式)
android·mysql·adb
梓仁沐白7 小时前
Android清单文件
android
董可伦10 小时前
Dinky 安装部署并配置提交 Flink Yarn 任务
android·adb·flink
每次的天空10 小时前
Android学习总结之Glide自定义三级缓存(面试篇)
android·学习·glide
恋猫de小郭11 小时前
如何查看项目是否支持最新 Android 16K Page Size 一文汇总
android·开发语言·javascript·kotlin
flying robot12 小时前
小结:Android系统架构
android·系统架构
xiaogai_gai12 小时前
有效的聚水潭数据集成到MySQL案例
android·数据库·mysql
鹅鹅鹅呢13 小时前
mysql 登录报错:ERROR 1045(28000):Access denied for user ‘root‘@‘localhost‘ (using password Yes)
android·数据库·mysql
在人间负债^13 小时前
假装自己是个小白 ---- 重新认识MySQL
android·数据库·mysql
Unity官方开发者社区13 小时前
Android App View——团结引擎车机版实现安卓应用原生嵌入 3D 开发场景
android·3d·团结引擎1.5·团结引擎车机版