간단하게 알아보는 Stateless 와 Stateful Widget

향신료·2023년 6월 14일
0
post-thumbnail
💡 편의를 위해 Widget이라는 단어는 제외하여 설명하고 있습니다



Stateless

Stateless는 원칙적으로는 변경할 수 없는 위젯입니다.

즉, 한번 생성된 후에는 위젯의 모양이나 동작이 변경되지 않습니다.


생성자를 통해 외부의 데이터를 이용할 수 있습니다.
해당 데이터는 바뀔 수 있으며 데이터가 바뀌면 위젯은 다시 만들어집니다.

  • 생성자를 통해 만들어지는 것이기에 클래스 안의 데이터는 바뀌지 않아
    stateless라는 명칭을 가지고 있습니다!

Stateful보다 비교적 빠르며, 불필요한 렌더링을 줄일 수 있습니다.

주로 위젯이 특정 상태를 유지할 필요가 없을 때 사용됩니다.





Stateful

Stateful은 내부적으로 상태를 유지하고 변경할 수 있는 위젯입니다.

사용자 입력 또는 다른 이벤트에 따라 상태를 업데이트할 수 있습니다.


생성자를 통해 데이터를 이용할 수도 있지만

내부 상태를 통해 외/내부 데이터 수정이 있을 때마다 위젯을 다시 만들 필요 없이 렌더링 할 수 있습니다.


상태를 유지하기 위해 추가적인 메모리와 계산이 필요하므로, 비교적 Stateless보다는 무겁습니다.

주로 사용자 입력과 같은 외부 요인에 따라 동작이 변경되어야 할 때 사용됩니다.





한눈에 보는 차이점

StatelessStateful
변경할 수 없는 상태를 유지, 해당 상태에서 렌더링을 진행.내부적으로 상태를 유지하고 변경 가능, 그에 따라 렌더링 진행.
주로 애플리케이션의 구성 요소로 사용사용자 입력에 따라 동작이 변경되어야 할 때 많이 사용
비교적 빠르며, 불필요한 렌더링이 없음.추가적인 메모리와 계산이 필요하므로, 비교적 무거움.
profile
드문드문 기초 정보를 올리는 블로그

0개의 댓글