Jetpack Compose 부수 효과

MJ·2023년 7월 9일
0

Jetpack Compose Basic

목록 보기
2/4

부수 효과란?

  • 구성 가능한 함수의 범위 밖에서 발생하는 앱 상태에 관한 변경사항
  • 컴포저블의 수명 주기 및 속성으로 인해 컴포저블에는 부수 효과가 없는 것이 좋으나 특정 상황에 필요한 경우가 있음

LaunchedEffect

  • 컴포저블의 범위에서 정지함수를 실행
  • 컴포저블 내에서 안전하게 정지함수를 호출하기 위해 사용

rememberCoroutineScope

  • 컴포지션 인식 범위를 확보하여 컴포저블 외부에서 코루틴 실행
  • 컴포저블 외부에 있지만 컴포지션을 종료한 후 자동으로 취소되도록 범위가 지정된 코루틴을 실행하기 위해 사용

rememberUpdatedState

  • 값이 변경되는 경우 다시 시작되지 않아야 하는 효과에서 값 참조
  • 주요 매개변수 중 하나가 변경되면 LaunchedEffect가 다시 시작됨. 하지만 경우에 따라 효과에서 값이 변경되면 효과를 다시 시작하지 않을 값을 저장해놓을 수 있음.
  • 상태 자체는 기억되어 있지만 값을 새로운 값으로 업데이트 되어 있음

DisposableEffect

  • 정리가 필요한 효과
  • 키가 변경되거나 컴포저블이 컴포지션을 종료한 후 정리해야하는 경우 사용

SideEffect

  • Compose 상태를 비 Compose 코드에 게시

produceState

  • 비 Compose 상태를 Compose 상태로 변환

derivedStateOf

  • 하나 이상의 상태 객체를 다른 상태로 변환
  • 해당 함수를 사용하면 계산에서 사용되는 상태 중 하나가 변경 될 때만 계산이 실행됨
  • 불 필요한 리 컴포지션 호출을 방지할 수 있다.

snapshotFlow

  • Compose의 상태를 Flow로 전환 (State 객체를 콜드 Flow로 변환)
  • 이전에 방출한 값과 다를 경우에 방출한다.

출처 - https://developer.android.com/jetpack/compose/side-effects?hl=ko#snapshotFlow

profile
느긋하게 살자!

0개의 댓글