当前位置: 首页 > news >正文

什么行业做网站多网站开发科普书

什么行业做网站多,网站开发科普书,北京网站建设有哪些公司好,宣传片拍摄总结JVM 1.Flutter Hot reload 实现原理 一、原理概述 Hot Reload 只能在 Debug 模式下使用,因为 Debug 模式下,Flutter 采用的是 JIT( 动态编译),代码是运行在 Dart VM 上,JIT 将 Dart 编译成可以运行在 Dart…
JVM
1.Flutter Hot reload 实现原理
        一、原理概述

                Hot Reload 只能在 Debug 模式下使用,因为 Debug 模式下,Flutter 采用的是 JIT( 动态编译),代码是运行在 Dart VM 上,JIT 将 Dart 编译成可以运行在 Dart VM 上的 Dart Kernel,Dart Kernel 可以动态更新,所以就实现了代码的实时更新功能。

        二、实现过程(Hot Reload时)

        1、首先会扫描代码,找到上次编译之后有变化的Dart代码;

        2、将这些变化的Dart代码转化为增量的Dart Kernel文件;

        3、将增量的Dart Kernel文件发送到正在移动设备上运行的Dart VM;

        4、Dart VM接着将发来的增量Dart Kernel文件和原有的Dart Kernel文件合并,然后重新加载全新的Dart Kernel文件(这时候不会重新执行代码)

        5、最后通知Flutter Framework重新构建Widget(Flutter的大多数视图刷新都是因为重构了Widget,但是此时会保留Flutter的之前状态);

        简要说就是 1.扫描代码 2.生成diff 3.发送设备上的虚拟机 4.内核合并 5.重构组件

2.Flutter开发框架有哪些,有什么特点?
        BLoC
        Provider
        GetX

                Provider、Bloc、GetX的使用区别和原理 - 简书        

3.Flutter中setState的原理

        setState是一个添加标记的过程,在下一次绘制需要组成渲染的内容时会将标记为脏的element重新渲染,之后合到场景绘制。

        1.setState调用markNeedsBuild
@protected
void setState(VoidCallback fn) {_element.markNeedsBuild();
}
2.markNeedsBuild标记为脏的 同时调用BuildOwner的scheduleBuildFor
void markNeedsBuild() {if (!_active)return;if (dirty)return;_dirty = true;// 标记为dirty(脏的)owner.scheduleBuildFor(this);
}
3.scheduleBuildFor将要刷新的element加入到全局的脏链表_dirtyElements
void scheduleBuildFor(Element element) {if (element._inDirtyList) {_dirtyElementsNeedsResorting = true;return;}if (!_scheduledFlushDirtyElements && onBuildScheduled != null) {_scheduledFlushDirtyElements = true;onBuildScheduled();// 回调}_dirtyElements.add(element);// 添加到“脏”链表里element._inDirtyList = true;
}
4.Flutter 布局和绘制关系

Flutter的布局和绘制详解 ---三棵树 - 简书

5.Flutter如何优化性能

超级全面的Flutter性能优化实践 - 知乎

  • 尽量不要为 Widget 设置半透明效果,而是考虑用图片的形式代替,这样被遮挡的 Widget 部分区域就不需要绘制了;
  • 控制 build 方法耗时,将 Widget 拆小,避免直接返回一个巨大的 Widget,这样 Widget 会享有更细粒度的重建和复用;
  • 对列表采用懒加载而不是直接一次性创建所有的子 Widget,这样视图的初始化时间就减少了。
6.Flutter DevTools工具介绍

Flutter开发之Dart DevTools - 知乎

7.Flutter 与原生通信有几种方式

准确说有四种,其中三种是MethodChannel、EventChannel、BasicMessageChannel

MethodChannel

用于native与flutter的方法调用

EventChannel

用于native单向的向flutter发送广播消息

BasicMessageChannel

用于native与flutter之间的消息互发。

第四种是PlatformView

让Flutter可以嵌套原生View到页面中也可以看作一种“特殊的通讯方式”

8.Flutter state生命周期
didChangeDependencies

didUpdateWidget

9. StatelessWidget和StatefulWidget有什么区别?

  生命周期不同,使用场景不同

1.StatelessWidget生命周期方法只有两个

        createElement

        build

2.StatefulWidget生命周期大致分为4个类

createState——initState——didChangeDependencies——build——didUpdateWidget(update后都会build)——deactivate(类似onPause)——dispose(类似onDestory)

        1.初始化调用createState 和 initState方法

        2.组件创建 调用didChangeDependencies 和build

        3.触发重build调用build(状态改变)

        4.暂停和销毁调用deactivate和dispose

10.Dart中如何让你的代码异步执行执行

        大家都知道Dart是单线程模型,在Looper里有一个微任务队列和事件队列,在循环的时候就会先遍历微任务队列再遍历事件队列再遍历微任务队列这样循环下去...

        那么要让代码一步执行只需要把代码放进微任务队列或事件队列中就行了

    //微任务scheduleMicrotask((){//你需要执行的代码});//事件队列Timer.run((){//你需要执行的代码});
11.Stream和Future区别

Future和Stream都是用于处理异步操作

简单来说

Future 单次异步事件 返回一次值,是不需要关闭的。直接return结果并使用then处理结果。

Stream 多次异步事件,未关闭的流是可以发射多次值的,一般都是需要关闭的。使用yield返回结果,使用await for处理结果。

(普通Stream属于单订阅流,通过Stream.asBroadcastStream()转换成广播流,广播流支持多个订阅者。)

Future适合一次性的异步操作,而Stream适合实时流式异步操作。

还有什么高频面试知识点欢迎留言!!

                

http://www.yayakq.cn/news/243788/

相关文章:

  • 商丘网站建设的公司哪家好建同城购物网站经历
  • 手机网站模板.手机怎么制作软件app
  • 做黑彩网站会怎样处罚用户体验差有哪些网站
  • 长春市住房和城乡建设局网站虹口专业网站建设公司
  • 网站开发销售简历范文jsp做网站还
  • 北京活动策划网站wordpress 悬浮页
  • 做有色研究的网站建设摩托车型号大全
  • 美食网站设计方案徐州泉山区建设局网站
  • 如何做一个企业的网站南充建设网站
  • 做网站不给源码建站之星做网站
  • 帮别人起名 做ppt的网站公众平台账号授权怎么弄
  • wdcp网站无法访问现在有没有免费的网站空间
  • 创建网站代码是什么情况华为al00手机价格是多少钱
  • 陕西省住房和城市建设厅网站怎么在自己电脑上建设网站
  • 电子商务网站建设与原理wordpress编码修改
  • 如何建立免费微网站网站整站建设
  • 台州网站关键字优化详情注册代理公司需要什么条件
  • 上海网站报价做的网站百度搜不到
  • 通州网站建设全包济南品牌网站制作便宜
  • 潍坊高级网站建设推广做网站和做app哪个容易
  • 网站策划书需求分析电子商务网站建设结业论文
  • 网站建设费记在什么科目下公司网站被抄袭
  • 网站建设贰金手指下拉贰壹黄页app
  • 网站开发实训周志做电商那个平台最好
  • ai生成图片在线制作单页面网站如何seo
  • 在线学做网站检测ai写作的网站
  • 学校网站怎么做优化网站开发研发工程师岗位职责
  • 做网站人郑州h5网站建设价格
  • 上海网站建设企业排名百度站长验证网站
  • 凉山网站建设小程序建站模板