美文网首页
Flutter中的StatelessWidget及其生命周期

Flutter中的StatelessWidget及其生命周期

作者: 沐灵洛 | 来源:发表于2020-08-10 14:22 被阅读0次

    StatelessWidget是什么?

    继承自Widget,状态不可变,用于描述UI展示中相对固定的部分,如纯展示,不会被改变的UI。

    abstract class StatelessWidget extends Widget {
    
      const StatelessWidget({ Key key }) : super(key: key);
    
      @override
      StatelessElement createElement() => StatelessElement(this);
    
     @protected
      Widget build(BuildContext context);
    }
    

    通过其类的定义能够看到StatelessWidget配置StatelessElement

    方法概述

    • build方法:

    描述:用于描述当前widget所代表的UI。
    调用时机: framework会使用build方法返回的widget注入当前StatelessElement或通过Widget.canUpdate选择合适的更新方式。
    场景: build可能在如下三种场景会被调用。

    1. StatelessElement也可以说statelessWidget首次插入树中时调用;
    2. Widget改变了StatelessElementwidget时,即通过StatelessElementupdate方法调用到。
    3. 它所依赖的InheritedWidget改变时。

    总结

    StatelessWidget通过StatelessWidget. createElement()创建了StatelessElementStatelessElement关联了StatelessWidget,并使用StatelessWidget配置自身。其中StatelessElement将其build方法通过关联的widget外放到StatelessWidget的实现中。因而他的生命周期依赖于StatelessElement,而StatelessElement的生命周期相对简单只有buildupdate

    为了能更好的理解StatelessWidget的生命周期,我画了一张关于StatelessElementComponentElement的关系图。

    `StatelessElement`、`Component`、`Element`的关系.png

    相关文章

      网友评论

          本文标题:Flutter中的StatelessWidget及其生命周期

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