diff --git a/Learning/进入KMP.md b/Learning/进入KMP.md index b6e84e5..0c08a75 100644 --- a/Learning/进入KMP.md +++ b/Learning/进入KMP.md @@ -79,7 +79,7 @@ val myCard = @Composable { a: Int -> ```kotlin @Composable -def Counter() { +fun Counter() { // 每次重组时,randomId 不会被重新生成,始终保留第一次的值 val randomId = remember { UUID.randomUUID().toString() } // 如果是可变变量,常使用委托,这里,它是一个枚举类 @@ -87,7 +87,7 @@ def Counter() { } @Composable -def UserProfile(userId: String) { +fun UserProfile(userId: String) { // 只有当 userId 发生变化时,remember 才会重新计算并更新 userCache val userCache = remember(userId) { fetchUserCacheFromDb(userId) @@ -127,7 +127,7 @@ fun CounterDisplay( ```kotlin @Composable -def Counter() { +fun Counter() { // 使用 remember + mutableStateOf 保持状态并在值变化时触发重组 var count by remember { mutableStateOf(0) } @@ -135,6 +135,26 @@ def Counter() { Text("点击次数: $count") } } + +@Composable +fun App() { + var seedColor: Color + + // 假设这里有什么东西会使 seedColor 发生变化 + + // seedColor 变化时,colorScheme 会被重新定义, + // 因为 rememberDynamicColorScheme 是 Composable 函数 + val colorScheme = rememberDynamicColorScheme( + seedColor = seedColor, + isDark = isSystemInDarkTheme() + ) + + // colorScheme 变化时,MaterialTheme 会重组, + // 因为 MaterialTheme 是 Composable 函数 + MaterialTheme( + colorScheme = colorScheme, + ) {} +} ``` ## 接下来可以看