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

相关推荐
JJay.7 小时前
Android BLE 稳定连接的关键,不是扫描,而是 GATT 操作队列
android·服务器·前端
忒可君7 小时前
C# winform 自制分页功能
android·开发语言·c#
summerkissyou19877 小时前
Android-线程安全-volatile
android·线程
我命由我1234510 小时前
Android 开发中,关于 Gradle 的 distributionUrl 的一些问题
android·java·java-ee·android studio·android jetpack·android-studio·android runtime
su_ym811010 小时前
Android 系统源码阅读与编译构建实战指南
android·framework
方白羽10 小时前
《被封印的六秒:大厂外包破解 Android 启动流之谜》
android·app·android studio
IT乐手12 小时前
java 对比分析对象是否有变化
android·java
做时间的朋友。12 小时前
MySQL 8.0 窗口函数
android·数据库·mysql
举儿12 小时前
通过TRAE工具实现贪吃蛇游戏的全过程
android
守月满空山雪照窗13 小时前
深入理解 MTK FPSGO:Android 游戏帧率治理框架的架构与实现
android·游戏·架构