Flutter - Tree

widget tree

  • ์œ„์ ฏ์˜ ๊ณ„์ธต ๊ตฌ์กฐ

  • ํ”Œ๋Ÿฌํ„ฐ ์ „์ฒด์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์œ„์ ฏ ํŠธ๋ฆฌ๋Š” 1๊ฐœ

  • main ํ•จ์ˆ˜์—์„œ runApp์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌํ•œ ์œ„์ ฏ์ด ๋ฃจํŠธ ๋…ธ๋“œ

  • ์ž์‹์˜ ์œ„์ ฏ์ด ๋นŒ๋“œ๊ฐ€ ๋˜๋ฉด ์œ„์ ฏ ํŠธ๋ฆฌ์—์„œ๋Š” ์ž์‹ ๋…ธ๋“œ๊ฐ€ ์ƒ๊น€

img

build context

  • ์œ„์ ฏ ํŠธ๋ฆฌ์—์„œ ํ˜„์žฌ ์œ„์ ฏ์˜ ์œ„์น˜๋ฅผ ์•Œ๋ ค์คŒ

  • ๋ชจ๋“  ์œ„์ ฏ์€ BuildContext๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ

  • ๋ถ€๋ชจ์˜ context์—๋Š” ๋ถ€๋ชจ ์œ„์ ฏ์˜ ์ •๋ณด๋งŒ ์•Œ ์ˆ˜ ์žˆ์Œ

element tree

  • widget tree๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹ค์ œ๋กœ ๊ทธ๋ ค์งˆ instance๋ฅผ ์ƒ์„ฑ

  • element tree์˜ ๋…ธ๋“œ์™€ widget tree์˜ ๋…ธ๋“œ๋Š” ์ผ๋Œ€์ผ๋กœ ๋Œ€์‘

  • ComponentElement, RenderObjectElement ๊ฐ์ฒด๋กœ ๊ตฌ์„ฑ

    • ComponentElement : ๋‹ค๋ฅธ element๋ฅผ ํฌํ•จํ•˜๋Š” ์—ญํ• ์„ ํ•จ

    • RenderObjectElement : ์‹ค์ œ ํ™”๋ฉด์— ์ถœ๋ ฅํ•  ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Œ

img

render tree

  • element tree๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹ค์ œ ํ™”๋ฉด์„ ์ถœ๋ ฅํ•˜๋Š” render tree ์ƒ์„ฑ

  • element tree์— RenderObjectElement ๊ฐ์ฒด๋งŒ ์ฐธ์กฐ

  • RenderObject ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์€ ํด๋ž˜์Šค๋กœ ๊ตฌ์„ฑ๋จ

img

Last updated