w6

[Class] Widget 

s00mm 2022. 10. 9. 14:07

 

Element(요소) 의 구성((위치, 키, 타입 등)을 나타냄

 

Element는 인덱스(요약정보?) 같은 느낌

 

1. 위젯이 위젯트리에 추가될때, 자신의 구성 정보를 가진 Element 를 생성한다.

    Element 는 위젯을 가리키고 있다. (위치정보를 가지고 있다.) 

위젯 트리와 요소트리

 

2. 위젯 트리의 한 위젯(A)이 다른 위젯(B)으로 대체되어야 할 경우

   2-1) 두 위젯의 runtimeTypekey 값이 같다면,

           B 위젯이 A의 Element를 업데이트 한다. 

         

   2-2)  두 위젯의 runtimeType 과 key 값이 같지 않으면,

            A 위젯은 삭제되고, B 위젯이 새로운 Element 를 생성한다. 

      

 

Constructors

Widget({Key? key})

키 값을 할당한다. 이 키는 종속된 클래스들에 사용된다. 

Initializes key  for subclasses.

 

 

 

 

사용예) 

class Foo extends StatelessWidget {
   @override
   Widget build(BuildContext context) => Text('foo'); 
}

   - Foo 는 상태가 변하지 않는 위젯 (StatelessWidget 를 확장(상속)한 위젯)임

 

  - 위젯의 주된 기능은  화면을 그리는 것(build( ) 함수 구현)하는 것

     Foo 는 화면에 'foo' 라는 텍스트를 노출하기 위해

    상속한 StatelessWidget 의 build 함수를 다시 작성함(override)

 

- build method 는 위젯의 Widget (Element 구성을 정보) 을 반환 함 

 

 

■ 참고 : https://api.flutter.dev/flutter/widgets/Widget-class.html