将所有 Remember(value) 替换为 Remember { returnedStateOf { value } } 是否有缺点?

Ely*_*lye 6 android android-jetpack-compose

正如在https://developer.android.com/jetpack/compose/side-effects中一样,我们有derivedStateOf这有助于防止不必要的重组。

有了这个,这让我思考,我们应该总是使用derivedStateOf而不是像remember(value)下面这样吗?

// Instead of using
remember(value1) { ... }

// Use
remember { derivedStateOf {value1} }
Run Code Online (Sandbox Code Playgroud)

这样做还可以确保我们不会重构包含 mutableState 的函数,而只是重构使用该 mutableState 的所有可组合函数。

derivedStateOf与 相比,使用有什么缺点吗remember(value)

Ysh*_*shh 0

不建议您全部更换。如果对象被重新分配,则使用remember。如果对象内容发生变化,则使用derivativeStateof

如果将它们全部替换为衍生状态,将不会检测到对象更改