[flutter] StatelessWidget 및 StatefulWidget

2020년 08월 17일 by 진아사랑해

    [flutter] StatelessWidget 및 StatefulWidget 목차
반응형

1. stateless 위젯과 stateful 위젯의 차이점은 ?

- stateless 윗젯은 child 위젯들의 변화나 내부 데이터의 변화를 즉각적으로 UI에 반영할 수 없다

  반영할 수 있는 방법은 hot reload 등으로 build를 다시 수행하는 방법이 있다

- statefull 위젯은 앱내의 변화를 setState(() {})를 사용하여 UI에 즉각 반영할 수 있다

  이는 내부적으로 필요한 부분에 대한 rebuild를 flutter가 수행하는 것이다.

 

2. stateless 위젯

class MyApp extends StatelessWidget {

   int _counter = 0;

   .................

  floatingActionButton: FloatingActionButton(

        onPressed: ( ) {

             _counter++,

        }

=> 버튼을 누르면 내부적으로 _counter 값은 증가하나, UI에 반영되지 않는다

 

3. statfull 위젯

1) class MyApp extends StatefullWidget {

  @override

  MyAppState createState() => MyAppState( );

  또는

  @override

   State<StatefulWidget> createState( ) {

         return MyAppState( );

    }

    => StatefullWidget 타입을 입력으로 받아서 State 타입을 return하라

         MyApp을 받아서 MyAppSate( ) 생성자의 인스턴스를 return 한다

 

2) class MyAppState extends State<MyApp> {   <= MyApp과 MyAppState의 관계를 알려준다

   int _counter = 0;

   .................

  floatingActionButton: FloatingActionButton(

        onPressed: ( ) {

            setState( ( ) {

               _counter++,

        });

 

3) 1)과 2)가 모두 수행이 되어야 MaApp과 MyAppState 클래스 사이 관계가 형성되면

    실제적 수행은 MyAppState Class에서 수행한다.

 

반응형