플러터갤이 망해서 여기다가 질문해 본다.
위에 이미지에 보면, Row 위젯의 자식 위젯으로 YelloBox 객체를 assign 하는걸 볼 수 있는데, 왜 굳이 StatelessWidget을 상속받은 객체를 할당하냐?
어차피 저 YelloBox 내부 구현은 Container 위젯인데, 그냥 Container 위젯 자체를 할당하면 안됨?
즉, 외부 위젯을 가지고 온다 하더라도, Container 위젯만 반환하는 함수 만들면 되지 않음???
내가 저 두 경우 모두 인스펙터에서 확인해 보니깐, 전자의 경우 확실히 StatelessWidget이 한겹 더 레이어드 되어있는 걸 볼 수 있더라. 어쨌든 리소스 낭비 아니냐?
전자의 경우
MyHomePage
ㄴ YelloBox <- 불필요한 widget이 한 겹 더 있음.
ㄴ Container
ㄴ Container
ㄴ Container
후자의 경우
MyHomePage
ㄴ Container
ㄴ Container
ㄴ Container
프갤 플러터유저 코로모, 졸려요 한테 물어봐라 ㅇㅅㅇ
1. 나중에 옐로 박스를 수정할 수 있으니까 2. 컨테이너로 구현된 YelloBox 위젯이란 느낌
YellowBox를 새 Container 위젯을 반환하는 createContainer 같은 정적 메소드로 사용하면 굳이 YelloBox 클래스 자체를 수정 할 필요가 없지, createContainer 함수 내부만 수정하면 되니깐.
함수를 쓰는건 내부에 변수를 가질수가 없고 성능 검사하기도 힘들다고 들음
https://stackoverflow.com/questions/53234825/what-is-the-difference-between-functions-and-classes-to-create-reusable-widgets
const constructor 를 쓰는경우 함수보다 더 성능이 좋다고도 하네
오 역시 나만 궁금해했던게 아니구나, 갓택오버플로우 ㅋㅋ ㄳㄳ
statelesswidget으로 안 감싸면 핫라로딩 안될텐데? 동작함? - dc App
둘다 됨
ㅇㅇ 동작 잘됨.
저기 스택오버플로우 답변 보니깐, 특정 위젯의 경우는 핫리로딩이 안될 수도 있다고 한다. 팝업창 같은 경우.
지금 저건 예제라 Container만 쓰는게 아닐까 싶음. 그리고 만약 YellowBox가 있고, RedBox가 있고 이렇게 색깔별로 22가지 정도 Box를 구분해야한다면, 전부 Container로 그대로 작성하면 나중에 코드를 볼때 한눈에 안들어오겠지? 지금 딱 저 상황만 보면 좀 낭비가 아닌가 싶을수도 있는데 저건 예제라 단순한 코드여서 그런거라고 생각하는게 좋을듯
그리고 인스펙터보면 ㄴ YelloBox ㄴ container ㄴ YelloBox ㄴ container ㄴ YelloBox ㄴ container 이렇게 이지 않나?
아 그러네