/**
* Key를 사용하지 않는 LazyColumn
*/
@Composable
fun NoteList(notes: List<Note>) {
LazyColumn {
items(notes) { note ->
// ,,,
}
}
}
LazyColumn으로 구현한 List가 업데이트 될 때
→LazyColumn은 어떤 item이 변경되었는지 알 수 없음. 따라서, 갱신 후 모든 화면에 보이는 item을 재구성.
/**
* Key를 부여
*/
@Composable
fun NoteList(notes: List<Note>) {
LazyColumn {
items(
items = notes,
key = { note ->
note.id
}
) { note ->
// ,,,
}
}
}
LazyColumn에 각 아이템을 판별할 수 있는 고유값을 알려 주기 위한 key 람다를 사용.
상기 코드에서, note의 고유 id를 Key로 전달.
→ 이 방식을 통해 LazyColumn은 실제 변경된 item만 재구성하므로, 효율성 증대.