Флаттер: понимание виджета, элемента и дерева рендера - PullRequest
0 голосов
/ 13 апреля 2020

Я пытался понять Flutter и как рендеринг работает под капотом. Я смотрел видео о том, "Как флаттер отображает виджет?" Как работает рендеринг Flutter? Я узнал, что строятся 3 дерева (Widget, Element и Render Tree). В Video Widget - это макет макета, Element - это конфигурация, а Render Tree выполняет фактическую прорисовку. Я все еще не могу понять, как в видео, Мэтт Суллиман говорит об этих трех следующим образом:

  1. Виджет: неизменное описание пользовательского интерфейса (означает, что он не изменится?), Также он описывает настройка элемента.
  2. Элемент: создание экземпляра виджета в дереве виджетов в определенном месте. (BuildContext?)
  3. Визуализация: обрабатывает размер, рисование и другие вещи низкого уровня.

Моя главная проблема в том, что в 6:36 видео Мэтт Суллиман говорит, что Element представляет фактическая часть пользовательского интерфейса. Эта часть меня очень смущает. Потому что, если элементы являются конфигурацией в соответствии с аналогией конфигурации, жизненного цикла и рисования. Таким образом, Render Tree должен быть частью пользовательского интерфейса. Я не получил эту часть.

rendering of the widget (confusion starts here)

Есть ли аналогия или простой способ, которым я могу понять, какова ответственность каждого дерева ?

...