Text를 하나하나 치다보면 너무 지저분한 100줄이 될 수 있다 따라서 그에 맞는 커스템 위젯 문법을 배워보자
stless
작성하고 tab 키 누른다
class ShopItem extends StatelessWidget {
const ShopItem({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return Container();
}
}
대문자로 클래스 작명
body: ShopItem(),
class ShopItem extends StatelessWidget {
const ShopItem({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return SizedBox(
child: Text('안녕'),
);
}
}
길고 복잡한 레이아웃을 한 단어로 축약하고 싶을 때
stless를 누르고 탭 키를 눌러서 형식이 완성되면, 작명 후에 필요한 코드를 return 다음에 넣어준다 ;
line 1. 커스텀 위젯은 class로 만든다
class는 변수, 함수 보관함이다
class 이외에 변수 함수들이 있어야 위젯으로 인정해준다.
기존에 있던 클래스를 하나 복사해서 만들 수가 있는데
extends를 이용할 수 있는 데 그 class가 StatelessWidget이다,
Widget build(BuildContext context) {
타입 지정하는 문법은 필요 없다.
build(context) {
//작명 + 소괄호 중괄호 = 함수 완료
클래스 만들 때 복사해서 만든다.
@override 거기에 있던 변수 함수들이 그대로 들어오기 때문에,
build()가 있을 수 있기 때문에 그 중복 발생하는 과정에서 "내거 먼저 사용해주세요" 라는 뜻이다.
class ShopItem extends StatelessWidget {
const ShopItem({Key? key}) : super(key: key);
@override
// Widget build(BuildContext context) {
build(context) {
//작명 + 소괄호 중괄호 = 함수 완료
return SizedBox(
child: Text('안녕'),
);
}
}
커스텀 위젯 만들고 싶으면 이 형식에 맞춰서 사용하면 된다.
복붙해서 사용하는 코드이다.
실은 변수, 함수 문법으로 축약 가능
var a에다가 이렇게 축약도 가능하다.
그런데 이렇게 하면 성능상 문제가 있을 수 있다.
앱을 보면 평생 바뀌지 않는 로고들 상단바 같은 것들은 변수에 담아도 되지만
데이터들이 실시간으로 바뀌는 (e.g 좋아요 수) 것들은 커스텀 위젯을 사용해야 한다.
var a = SizedBox(
child: Text('안녕'),
);
class ShopItem extends StatelessWidget {
const ShopItem({Key? key}) : super(key: key);
@override
// Widget build(BuildContext context) {
build(context) {
//작명 + 소괄호 중괄호 = 함수 완료
return a;
}
}
state 관리가 힘들어진다는 단점이 있기 때문에
커스텀 위젯으로 모두 만들어보는 것보다는
재사용이 많은 UI 덩어리들이나 페이지 하나의 위젯과 같은 것들에 사용하는 것이 좋다.
스크롤바가 필요한 긴 목록 Column이 필요할 때
Column 대신에 LIstView()를 사용한다.
스크롤 위치 감시도 가능하다 / 얼마큼 스크롤 했는지
가장 큰 장점 : 메모리 절약이 가능
/ 글자가 100개 있을 때 1~50 글자는 필요 없을 때, 메모리에서 삭제되게 코드를 짤 수 있다 (성능 개선)
인스타 피드, 쿠팡 목록 모두 ListView()를 사용한다.
숙제가 있다.
하지만 안타깝게도 코딩애플의 무료 강의는 여기까지다 더 궁금한 점이 있으면 유료 강의를 수강해야 한다.
여기까지 알차게 잘 들은 것 같다. 강의가 10분 씩이지만 사실 쓸데없는 부분들을 설명하지 않아서, 알찬 강의였던 것 같다.
숙제까지 완료 - !
'Flutter' 카테고리의 다른 글
Flutter 플러터 AppBar, title color 색상 넣기 (0) | 2022.11.27 |
---|---|
Flutter 플러터 아이콘 찾기 (0) | 2022.11.27 |
[코딩애플] 쉬운 플러터 5강 : Flexible과 숙제 안해오면 때림 (0) | 2022.11.25 |
[코딩애플] 쉬운 플러터 4강 : AppBar (아빠) (0) | 2022.11.25 |
[코딩애플] 쉬운 플러터 3강 : 박스잘그려야 앱 잘만듭니다 (0) | 2022.11.24 |