3 Matching Annotations
  1. May 2023
    1. 每次你的 Composable 函数被重新执行时,LaunchedEffect 也会被重新执行。这并不意味着 loadMenuData() 会被再次调用,因为 LaunchedEffect 的参数(在这种情况下是 Unit)没有改变,所以 loadMenuData() 不会被再次调用。然而,LaunchedEffect 的重新执行可能会触发 Compose 的重新组合机制,导致依赖于状态的 Composable 函数(如 Summary)被重新执行。这就是为什么你看到 Summary 被执行两次的原因。

      Compose 组件被执行两次。

    1. 至于为什么在从菜单页切回主页时 Summary 也会执行,这可能是因为 Compose 在页面切换时进行了一些内部的状态更新,导致了 Summary 的重新执行。这是 Compose 的正常行为,通常不需要过于关注。

      组件意外重组,可能是内部的状态更新,无需过于关注。

    1. LiveData 是为 ViewModel 设计的,可以在 ViewModel 和 UI 之间安全地传递数据,同时避免内存泄漏。

      LiveData 就相当于是 ViewModel 和 UI 之间的中介,传递数据或状态的中介。