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

相关推荐
泡泡以安1 小时前
【Android逆向工程】第3章:Java 字节码与 Smali 语法基础
android·java·安卓逆向
一笑的小酒馆7 小时前
Android launcher3实现简单的负一屏功能
android
xuyin12047 小时前
【Android】Flow基础知识和使用
android
李新_9 小时前
基于Markwon封装Markdown组件
android·aigc·markdown
Non-existent98711 小时前
Flutter + FastAPI 30天速成计划自用并实践-第10天-组件化开发实践
android·flutter·fastapi
@老蝴12 小时前
MySQL数据库 - 约束和联合查询
android·数据库·mysql
ljt272496066113 小时前
Compose笔记(六十一)--SelectionContainer
android·笔记·android jetpack
有位神秘人14 小时前
Android中Compose系列之按钮Button
android
AI科技摆渡14 小时前
GPT-5.2介绍+ 三步对接教程
android·java·gpt
csdn122598733615 小时前
Android12 新启动页到底该怎么做
android·启动页