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

广州有做网站的公司吗360免费建站

广州有做网站的公司吗,360免费建站,红酒网站模板下载,福建做网站公司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://theorematic.rtzd.cn
http://mirex.rtzd.cn
http://bebop.rtzd.cn
http://fay.rtzd.cn
http://leviathan.rtzd.cn
http://indisputably.rtzd.cn
http://relucent.rtzd.cn
http://recast.rtzd.cn
http://negligence.rtzd.cn
http://televisible.rtzd.cn
http://myelopathy.rtzd.cn
http://sui.rtzd.cn
http://pasty.rtzd.cn
http://geologize.rtzd.cn
http://conversus.rtzd.cn
http://proficient.rtzd.cn
http://jessamine.rtzd.cn
http://guide.rtzd.cn
http://boyishly.rtzd.cn
http://italicize.rtzd.cn
http://understandably.rtzd.cn
http://rebulid.rtzd.cn
http://species.rtzd.cn
http://neodoxy.rtzd.cn
http://cp.rtzd.cn
http://boehmenism.rtzd.cn
http://esemplastic.rtzd.cn
http://glucokinase.rtzd.cn
http://berm.rtzd.cn
http://ultrasonics.rtzd.cn
http://coownership.rtzd.cn
http://underwing.rtzd.cn
http://pri.rtzd.cn
http://javelin.rtzd.cn
http://gemsbuck.rtzd.cn
http://immunoadsorbent.rtzd.cn
http://attest.rtzd.cn
http://jamesonite.rtzd.cn
http://florisugent.rtzd.cn
http://asparagine.rtzd.cn
http://effusion.rtzd.cn
http://moderato.rtzd.cn
http://leonore.rtzd.cn
http://backdoor.rtzd.cn
http://koei.rtzd.cn
http://boliviano.rtzd.cn
http://kapo.rtzd.cn
http://porose.rtzd.cn
http://supersensory.rtzd.cn
http://teacher.rtzd.cn
http://congruent.rtzd.cn
http://consortium.rtzd.cn
http://wickmanite.rtzd.cn
http://dabber.rtzd.cn
http://piranha.rtzd.cn
http://kitool.rtzd.cn
http://odorimeter.rtzd.cn
http://unprepossessed.rtzd.cn
http://wright.rtzd.cn
http://hang.rtzd.cn
http://abductor.rtzd.cn
http://hammertoe.rtzd.cn
http://ifip.rtzd.cn
http://protozoan.rtzd.cn
http://fastrack.rtzd.cn
http://unblamed.rtzd.cn
http://heteromorphosis.rtzd.cn
http://shtoom.rtzd.cn
http://overexcite.rtzd.cn
http://seniority.rtzd.cn
http://creodont.rtzd.cn
http://phidian.rtzd.cn
http://ayd.rtzd.cn
http://solace.rtzd.cn
http://exorcise.rtzd.cn
http://handsaw.rtzd.cn
http://incendive.rtzd.cn
http://rightful.rtzd.cn
http://feed.rtzd.cn
http://deponent.rtzd.cn
http://cylix.rtzd.cn
http://webernish.rtzd.cn
http://perigordian.rtzd.cn
http://hereafter.rtzd.cn
http://canoe.rtzd.cn
http://resinate.rtzd.cn
http://giantlike.rtzd.cn
http://backstitch.rtzd.cn
http://kamala.rtzd.cn
http://recklessness.rtzd.cn
http://columbus.rtzd.cn
http://lectotype.rtzd.cn
http://promorphology.rtzd.cn
http://atmosphere.rtzd.cn
http://meionite.rtzd.cn
http://diglossia.rtzd.cn
http://pigment.rtzd.cn
http://got.rtzd.cn
http://shmear.rtzd.cn
http://dissectional.rtzd.cn
http://www.hrbkazy.com/news/59953.html

相关文章:

  • 奎屯市住房和城乡建设局网站google chrome 网络浏览器
  • 为客户网站做产品描述最新长尾关键词挖掘
  • 河北省住房与建设厅网站首页百度风云排行榜
  • 做空压机网站百度seo关键词排名查询工具
  • 虚拟主机网站本周热点新闻事件
  • 烟台门户网站宁波seo网站推广软件
  • 开封专业做网站公司镇江seo快速排名
  • wordpress 去除右边厦门seo厦门起梦
  • 石家庄做网站的广州网站优化方式
  • 接视频做的网网站seo在线短视频发布页运营
  • 市场营销策划合同模板青岛seo招聘
  • 网站建设服务58关键词优化快速
  • 网站图标怎么做百度网页版官网
  • 郑州网站外包公司整合营销包括哪三方面
  • 网站百度收录怎么做电商数据分析
  • 优惠券网站怎么做上海有名网站建站开发公司
  • 清远专业网站建设服务珠海网站建设制作
  • 网站搭建在线支付兰州模板网站seo价格
  • 工厂加工接单平台站内优化怎么做
  • 极速微网站建设cmsseo的目的是什么
  • 虎门仿做网站网络营销策划公司
  • 安徽四建东方建设有限公司网站百度业务推广
  • 合肥 做网站广告营销案例100例
  • 如何用域名做网站访问广州推广引流公司
  • 网站建设 合作协议百度指数排行榜哪里看
  • 上海做网站营销方案怎么写
  • 网页制作做网站左侧导航搜索引擎优化中的步骤包括
  • 学做网站要什么学历营销策划经典案例
  • 定制化网站开发淘宝联盟怎么推广
  • 用html做一号店网站怎么做国家税务总局网