[Compose Study] State 다루기

728x90
반응형

* 화면에 표시되는 내용이 변경된다면 State를 활용해야 한다.

* ViewModel에서 mutableState은 읽기와 쓰기가 가능한 타입이고 그냥 State<String>은 읽기만 가능한 타입이다.

 

* 먼저, State를  다루는 방법엔 여러가지가 있는데 1, 3번째 방식은 앞에서 정리한 내용이기도 하다.

  • 1번째 방법은 그냥 MutableState<String> 타입으로 다루는 것이다. 
  • 3번째 방법은 구조분해를 사용하여 text(getter 역할), setText(setter 역할)로 나누어 다룬다. 아래처럼 TextField에 (value = text, onValueChange = setText)로 텍스트 변경이 가능하다. 구조분해에서 text는 val로 선언되어 있기 때문에 String을 수정하려면 setText("변경") 이런 식으로 수정해줘야 한다.
  • 2번째 방법은 = 대신 by를 쓰는 방식이다. by에는 기본적으로 getValue, setValue가 내부에 구현되어 있다. 따라서 text1처럼 text1.value로 접근하지 않고 그냥 바로 text2 = "변경" 이런 식으로 변경이 가능하다. (대신 var로 선언해야 함)

 

* 다음은 ViewModel안의 데이터를 다루는 방법이다.

* viewModel안에 value는 val로 되어있어서 위에서처럼 viewModel.value.value = "변경" 이런식으로 직접적으로 수정이 안되고,  viewModel 안에서 따로 함수를 정의해 호출해야한다.

728x90
반응형

'Study > Android' 카테고리의 다른 글

[Compose Study] Compose 기본사항 - 1  (2) 2024.09.04
[Compose Study] LazyColumn  (1) 2024.06.05
[Compose Study] ViewModel  (0) 2024.06.03
[Compose Study] Navigation  (0) 2024.06.02
[Compose Study] Scaffold  (0) 2024.05.30
TAGS.

Comments