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

相关推荐
...mzx9 分钟前
XXE-Lab靶场漏洞复现
android
Hui_Hong_TaiLang1 小时前
C#.NET使用multipart/form-data方式上传文件及其他数据
android·c#·.net
Patience to do2 小时前
安卓课设版算法计算器
android·jvm·算法
云计算老王3 小时前
MySQL 数据类型
android·mysql·adb
望佑4 小时前
Compose学习项目:生成随机数组
android
jiet_h4 小时前
Android Compose Modifier
android
drebander7 小时前
MySQL EXPLAIN 详解:一眼看懂查询计划
android·数据库·mysql
留白的云7 小时前
Android app反编译 攻与防
android·安全性测试
KpLn_HJL8 小时前
leetcode - 1530. Number of Good Leaf Nodes Pairs
android·java·leetcode