美文网首页
Flutter Element

Flutter Element

作者: livesxu | 来源:发表于2020-04-06 18:29 被阅读0次

    Widget(部件) ——> Element (元素)——> RenderObject(真·渲染对象)

    Widget:Describes the configuration for an [Element].

    Element:An instantiation of a [Widget] at a particular location in the tree.

    RenderObject:An object in the render tree.The [RenderObject] class hierarchy is the core of the rendering library's reason for being.

    在树中特定位置的[Widget]的实例化。Widgets描述了如何配置子树,但同一个widget可用于同时配置多个子树,因为Widgets是不可变的。

    元素构成树。大多数元素都有一个唯一的子元素,但是一些小部件(例如,[RenderObjectElement]的子类)可以有多个子元素。

    元素具有以下生命周期:

    1.在部件被调用的时候将会通过通过[Widget.createElement]根据配置来创建元素。

    2.新创建的元素添加到树中时将会调用[mount]方法填充子部件并调用[attachRenderObject]调整关联渲染对象;

    3.此时,元素被认为是“活动的”,并可能出现在屏幕上;

    4.状态更新时,部件将会调用[update]。新部件与旧部件具有相同的[runtimeType]和key,更新元素;如果当前位置部件更改,将会卸载当前位置元素并装载新的部件;

    5.元素卸载时,此元素根通过调用自身的[deactivateChild],将元素渲染对象从渲染树移除,然后将元素添加到非活动元素列表中,元素调用[deactivate],该元素被视为“非活动”;

    6.如果元素被重新合并到树中,将从非活动元素列表中删除该元素,对该元素调用[activate],并将该元素的渲染对象重新附加到渲染树中。(此时,该元素再次成为“活动”元素。)

    7.在动画帧的末尾,将卸载处于非活动状态的元素。将调用元素的[unmount]。该元素被视为“已失效”,将来不会合并到树中。

    相关文章

      网友评论

          本文标题:Flutter Element

          本文链接:https://www.haomeiwen.com/subject/kcmbphtx.html