해결된 질문
작성
·
352
0
바로 만들어보기: 이미지 갤러리 화면 구성하기2
강의 12:04~12:22, 해당 코드 기반 질문입니다!
Q1. "이 클래스(MyHomePage)가 사라지면" 이라는 설명이 있는데, 앱 종료시 이외에 이 클래스가 사라지는 시점은 언제언제인가요?!
Q2. 반대로, 위 클래스의 인스턴스(?)가 생성되는 시점은 홈 화면에 접속할 때마다 인가요?.?
답변 1
1
안녕하세요. 답변 도우미입니다.
Flutter에서 클래스의 인스턴스가 생성되거나 사라지는 것은 해당 위젯의 생명 주기(lifecycle)와 관련이 있습니다.
Q1. 클래스가 사라지는 시점은 위젯이 화면에서 제거되는 시점을 의미합니다. 이는 다양한 경우에 발생할 수 있습니다:
앱이 종료될 때
Navigator를 통해 다른 페이지로 이동하였을 때 (push, pop)
부모 위젯이 rebuild될 때, 그 하위에 있는 위젯의 상태에 변화가 필요하다고 판단되면 부모 위젯은 해당 위젯을 제거하고 새로운 위젯을 만들 수 있습니다.
Q2. 클래스 인스턴스가 생성되는 시점은 홈 화면에 접속할 때마다 일 수도 있고 그렇지 않을 수도 있습니다. 이는 앱의 동작 방식과 상황에 따라 다를 수 있습니다. 통상적으로는 말씀하신 바가 맞습니다.
다만, 더 다양한 시나리오에서는 다양한 시점이 될 수도 있습니다. 예를 들어, Navigator를 사용하여 홈 화면으로 다시 돌아왔을 때, 홈 화면 위젯이 메모리에 유지되는지 (즉, 기존 인스턴스를 계속 사용하는지) 아니면 새 인스턴스를 만드는지는 구현에 따라 달라집니다. MaterialApp의 home 프로퍼티에 할당된 위젯 같은 경우에는 앱이 실행될 때 한 번만 생성됩니다.
감사합니다.