Flutter中你需要了解的一些知识

举报
坚果的博客 发表于 2022/02/20 09:44:17 2022/02/20
【摘要】 关于Flutter的那些事儿作者:坚果公众号:"大前端之旅"华为云享专家,InfoQ签约作者,阿里云专家博主,51CTO博客首席体验官,开源项目GVA成员之一,专注于大前端技术的分享,包括Flutter,小程序,安卓,VUE,JavaScript。什么是Flutter?Flutter是一个开放源码的UI 由谷歌创建的开发套件。它用于从单个代码库开发适用于 Android、iOS、Linux、...

关于Flutter的那些事儿

作者:坚果

公众号:"大前端之旅"

华为云享专家,InfoQ签约作者,阿里云专家博主,51CTO博客首席体验官,开源项目GVA成员之一,专注于大前端技术的分享,包括Flutter,小程序,安卓,VUE,JavaScript。

什么是Flutter?

Flutter是一个开放源码的UI 由谷歌创建的开发套件。它用于从单个代码库开发适用于 Android、iOS、Linux、Mac、Windows 和 Web 的应用程序。Flutter 应用程序是用 Dart 语言编写的。

什么是Dart?

Dart 是一种客户端优化的编程语言,适用于多个平台上的应用程序。它由 Google 开发,用于构建移动、桌面、服务器和 Web 应用程序。Dart 是一种面向对象、基于类、垃圾收集的语言,具有 C 风格的语法。Dart 可以编译为原生代码或 JavaScript。

有状态和无状态widget有什么区别?

  • 无状态widget不需要可变状态,即它是不可变的。无状态widget的状态只创建一次——因此,构建方法也只调用一次。简而言之,无状态widget在应用程序运行期间无法更改其状态,这意味着在应用程序运行时无法重绘widget。如果要重绘无状态widget,则需要创建widget的新实例。

  • 有状态widget具有可变状态,即它们是可变的并且可以在其生命周期内多次绘制。它们是可以多次更改状态的widget,并且可以在应用程序运行时在屏幕上多次重绘。

State 是什么意思?什么是 setState()?

状态是widget的变量值/属性的集合。任何可以改变的东西,比如计数器计数、文本等,都可以成为 State 的一部分。

setState() 本质上是一种告诉应用程序使用新值/属性刷新和重建屏幕的方法。

状态对象由框架创建。为了更改您的widget,您需要更新状态对象,这可以使用可用于有状态widget的 setState() 函数来完成。setState() 设置状态对象的属性,进而触发 UI 的更新。但是这种技术有其自身的缺点。

“StatefulWidget”的生命周期是什么?

  • createState()— a 中的一个方法会StatefulWidget立即被调用,并且应该State为widget返回一个对象

  • initState()State创建widget后在对象中调用的第一个方法

  • didChangeDependencies()initState()在第一次构建widget后立即调用

  • build()— 与StatelessWidget. 它在 之后立即调用didChangeDependencies()。每次 UI 需要渲染并返回widget的树时都会调用它。

  • didUpdateWidget() — 当父widget发生变化并需要重绘其 UI 时调用它

  • deactivate()— 调用 before dispose(),当这个对象从树中移除时

  • dispose()— 在释放整个widget及其状态时调用。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。