Flutter升级打怪之路_01

2 阅读4分钟

Flutter升级打怪之路_01

24.2.3

决定学习flutter这门新的开发技术栈后,我通过掘金、Flutter中文网、万能的搜索引擎断断续续地了解了flutter的基础知识和Dart语法,终于在摸鱼N天后开始我的Flutter快速学习之路!

今天是Flutter学习的适应性第一天,小芽在摸鱼和不想学习中懒懒散散地花费了几个小时配好了Flutter的环境(用的编译器是vscode,使用神奇的穿越魔法用git下载了flutter的SDK,安装了android stdio完成配置)!

windows + flutter + vscode 最详细的配置以及使用方法_vs code如何运行flutter 应用-CSDN博客

配环境链接送上!ORZ

24.2.4

今天的学习任务是① 写一下算法题 ② 用flutter做一个猜数字和电子木鱼的小项目

好吧但是整整一上午还没有做完第一个项目!小芽同志看到隔壁学习小伙伴的飞速进展很是忧心……

遇到了一个愚蠢的bug,自己却不会改……

但是发现Newbing神助攻!

微信图片_20240204190602

1. 关键字 var、final、const、late

(1)var

① 普普通通的定义变量关键字,可以赋值不同类型的变量,也可以自动推断变量的类型,如果没有初始化值为null。

② 可以再次赋值。但是,如果在声明时就赋值,则相当于指定类型,再赋值其他类型就会报错。

(2)final

只能赋值一次! (要不然为什么叫final嘞…)先声明再赋值 或者 声明完不赋值都可以。

(3)const

修饰常量,声明时就得赋值。

(4)late

① Dart 2.12 引入,定义变量时要初始化,其余使用起来和var差不多。作用是支持空安全和延迟初始化。

② late 关键字的作用是告诉编译器,这个变量会在稍后的某个时刻被初始化,而不是在声明时就被赋值。这样可以避免一些不必要的错误,比如在构造函数中使用 this 关键字,或者在变量的初始化器中访问它自己。同时,它也可以提高性能,因为如果这个变量没有被使用,那么它的初始化语句就不会被执行,可以节省资源。

2. StatefulWidget 和 StatelessWidget

(1)StatefulWidget 和 StatelessWidget是Flutter中两种常用的组件类型,它们的区别主要在于是否有状态(state)

  • StatefulWidget是有状态的组件,它可以在运行时改变自己的状态(state),从而改变自己的外观或行为。StatefulWidget需要一个State对象来存储它的状态,并提供一个createState方法来创建这个对象。State对象可以通过setState方法来更新状态,并通知Flutter重新构建组件。
  • StatelessWidget是无状态的组件,它不会在运行时改变自己的状态(state),它只依赖于传入的参数(props)来确定自己的外观或行为。StatelessWidget不需要一个State对象,也不需要一个createState方法,它只需要一个build方法来返回一个Widget。

(2)一般来说,StatefulWidget适合用于需要交互或动画的组件,如按钮、滑块、复选框等,而StatelessWidget适合用于只需要展示数据的组件,如文本、图标、图片等。

QQ图片20240204220115

好难啊……明明提前已经看过这个教程了……但实际上手猜数字才弄完一点点,再加上有点摸鱼……怎么这也要加动画啊……明天再做交互和动画吧(心累……)

3.总结

除了①再辨析了几种关键字的用法②了解了flutter里面两个比较重要的组件的区别(一个是会随状态改变,一个不会随状态改变)

还有 ③flutter里面appbar的写法,需要写在一个叫做Scaffold的组件里面作为一个属性设置。然后分为左(leading)中(actions)右(title)三部分,里面…有很多乱七八糟的属性,感觉跟css差不多… ④随机数的产生:这个很简单,调用一个库(dart:math)然后用一个random()函数,再用一个nextInt()限定这个数的范围就可以了。 ⑤值得一提的还有一种叫stack的叠放组件,大概是可以让他的组件按照“后来居上”的显示顺序展示…