03.20 플러터

정영하·2023년 3월 20일
0

Flutter

목록 보기
2/3

플러터
화면구성
상태관리(지역, 전역)
내부 동작 방식은 지금 안중요
0.일반 변수(상태가 아닌 변수)는 바뀌더라도 화면이 변하지 않는다.
1.데이터가 변하면 화면이 변한다(재빌드)
2.데이터를 넣어 주는 방식을 기억한다.
상태주입(HookWidget, MultiProvider)
상태변경(만든 함수 controller.change())
상태관찰(controller.isChecked)

context.watch -> 상태를 계속 관찰하겠다.
(데이터가 바뀌는 것을 관찰 할 수 있다.)
관찰하기 때문에 데이터가 바뀌면 화면에 영향
context.read + 관찰

context.read -> 상태를 한번만 확인한다.
상태가 바뀌어도 화면에 영향을 끼치지 못함
상태를 변화 시키는 함수는 사용 가능

기능
onTap 등 유저의 반응을 통해서 함수 실행
페이지 내에서 화면 전환
페이지에 종속된 위젯들을 조건에 맞게 출력

페이지 이동
Navigator를 이용


화면 위젯 3가지
  1. 자식을 가질 수 없는 위젯
    (Text, Image, Divider 등)
  1. 자식을 하나만 가질 수 있는 위젯
    (meterialApp, Scaffold, safearea)
  1. 자식을 여러개 가질 수 있는 위젯
    (Column, Row, ListView)

BottomNavigationBar는 버튼 클릭하면 몇번 눌렀는지 지가 그 정보를 준다

화면 페이지 내부의 상태를 관리하기 위해 HookWidget 사용할 수 있는 Hook은 useState, useEffect 등이 있다.
Hook은 build 함수 안에 적는다.

provider:
flutter_hooks:

pubspec.yaml에 추가


stateless 위젯 - 화면 변경이 안됨
stateful 위젯 - 상태에 따라 화면 변경 됨
stateless 위젯 + 상태 라이브러리 - 상태에 따라 화면변경
라이브러리 위젯(HookWidget) - 라이브러리가 시키는 방법에 따라 진행하면 화면 변경

상태란 변화하는 데이터

jsp는 댓글을 작성할 때 버튼 클릭하면 서버에서 DB에 댓글을 넣고 화면 전체를 리턴
-> 댓글란만 갱신할 수 없을까
-> 개발자가 할 일이 많음
-> 편하게 바꾸고 싶다 -> 상태

Container(color: Colors.yellow[200])
() => Container(color: Colors.yellow[200])

_변수 : private

0개의 댓글