-
[메모 스크랩] bloc state는 항상 불변이어야하는가?flutter 2021. 11. 17. 14:31
코멘트
일부 블로그 또는 자습서에서 변경할 수 없는 주석이 있는 상태를 생성하는 것을 보았습니다 .
참고:
flutter_bloc_with_stream
항상 불변이어야 합니까?
그렇다면 그렇습니다. 무한 스크롤 목록 페이지에서 immutable이 존재하는 경우 객체 생성이 요구될 수 있으며 정기적으로 짧은 시간에 가비지 수집이 수행되어 앱 성능 및 메모리 사용량에 영향을 미칠 수 있습니다.
@felangel 에 대한 귀하의 의견을 표현해 주십시오.안녕하세요 @VivekKannaV 👋
문제를 열어 주셔서 감사합니다!
귀하의 질문과 관련하여 yes 상태는 항상 변경할 수 없습니다. 우려 사항을 설명할 수 있는 예를 제공할 수 있습니까? 감사 해요!안녕하세요 @felangel
다음 예시 Flutter Infinite List를 봐주세요
이 프로젝트에서 profile_state를 살펴보십시오.
해당 profile_state 에서
PostLoaded State에는 목록 이 있으며 목록 은 사용자가 스크롤할 때마다 더 많은 항목을 추가합니다.
그런 상황에서 상태를 불변의 수단으로 유지하면 new PostLoaded(posts: list)매번 새로운 객체를 생성해야 하므로 앞서 말했듯이 앱 성능에 영향을 미칠 수 있습니다.
그럼에도 불구하고 상태를 변경 가능한 상태로 만들면 안되는 이유 및 사용자가 스크롤할 때마다 아래와 같이 새 개체를 만드는 대신 목록을 단독으로 업데이트할 수 있습니다.
state.list.add(items).
감사 해요.불변 상태는 여러 가지 이유로 블록 라이브러리의 요구 사항입니다.
- 라이브러리가 상태 변경을 효율적으로 감지할 수 있도록 합니다.
- 데이터를 더 안전하게 처리합니다(부작용 또는 돌연변이 없음).
- 이상하거나 예측할 수 없는 동작으로 이어지는 언제든지 변경될 수 있는 상태 대신 상태의 정적 스냅샷을 사용하기 때문에 상태 관리를 예측 가능하게 만듭니다.
'flutter' 카테고리의 다른 글
[메모] flutter 단위테스트, 테스트코드 관련 (0) 2021.11.20 [메모] flutter const, final (0) 2021.11.17 flutter batch 사용 (0) 2021.10.27 키보드 고정 UI (0) 2021.09.08 flutter 텍스트 폰트크기 고정 (0) 2021.09.08