Flutter面试题

这篇博客详细梳理了Flutter面试的相关问题,包括dart语言特性、Flutter的生命周期、Mixin的用途、Widget与Element的关系、StatelessWidget和StatefulWidget的区别等。此外,还涉及了手势拖动实现、Stream订阅模式、路由监听、异常捕获和多线程在Dart中的实现。面试题涵盖初级到高级,如未来任务执行顺序、原生平台通信、性能调优和算法题,同时也讨论了混合开发和项目管理的策略。
摘要由CSDN通过智能技术生成

技术题:

一、【初级】偏向使用--必须掌握

  1. dart传参的基本方式  (abc(a)  abc(a,{a})  abc(a,[a]))  
  2. var和dynamic的区别
    Dart 会自推导出数据类型var 实际上是编译期的“语法糖”。dynamic 表示动态类型, 被编译后,实际是一个 object 类型,在编译期间不进行任何的类型检查,而是在运行期进行类型检查。
  3. final与const区别 
    const 值必须在编译时知道,初始化后无法改,final 值必须在运行时知道,初始化后无法更改
  4. ?、??、??=三者的区别
    ??=,如果变量没有赋值才进行赋值,否则不进行赋值
  5. Flutter 中的生命周期
    initState→ didChangeDependencies→ build→ deactivate→ dispose
    didUpdateWidge
  6. 生命周期场景

           Widget A打开Widget B: 调用 Navigator.push(B) 生命周期如何调用

           B构造函数--->B initState--->B didChangeDependencies--->B build--->A deactivate--->A didChangeDependencies.

           Widget B退出: Navigator.pop

           A deactivate--->A didChangeDependencies--->A build--->B deactivate--->B dispose

  1. 为什么有 Mixin解决了什么问题,有没有应用场景

    mixin: 定义了功能模块。
    on: 限定了功能模块的使用类型。
    with: 负责功能模块的组合。
  2. Widget、Element、RenderObject三者之间的关系
    Widget不是真正渲染UI的对象,它只是Element的一个配置描述,去告知Element应该如何去渲染,Widget 和 Element 之间是 ⼀对多的关系 。
    RenderObject才是实际渲染的对象,Element 持有 RenderObject 和 Widget。
    ⼤致总结三者的关系是:配置⽂件 Widget ⽣成了 Element,⽽后创建 RenderObject 关联到 Element 的内部 renderObject 对象上,最后Flutter 通过 RenderObject 数据来布局和绘制。

  3. StatelessWidget和StatefulWidget的区别,举例说明Flutter自带的组件那些是StatelessWidget哪些是StatefulWidget
  4. 父组件调用子组件方法 / 子组件调用父组件的方法
    GlobalKey/callBac
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值