是否存在某种情况下人们应该选择其中一种而不是另一种?
@Composable
fun <T> Foo(data: State<T>) { ... }
Run Code Online (Sandbox Code Playgroud)
相比
@Composable
fun <T> Foo(data: T) { ... }
Run Code Online (Sandbox Code Playgroud)
或者对于可变状态,
@Composable
fun <T> Foo(data: MutableState<T>) { ... }
Run Code Online (Sandbox Code Playgroud)
相比
@Composable
fun <T> Foo(data: T, setData: (T) -> Unit) { ... }
Run Code Online (Sandbox Code Playgroud)
显然,使用 setData lambda 的一个优点是您可以拦截 set 操作,但从 Compose 的角度来看,我更感兴趣。对组合编译器有什么影响或者重组如何工作?