flutter初学

100 阅读2分钟

开始之前:

开发模式:H5+原生【混合开发模式】

框架主要原理就是将 App 中需要动态变动的内容通过HTML5(简称 H5)来实现,通过原生的网页加载控件WebView (Android)或 WKWebView(iOS)来加载

h5的特点是:1随时改变无需发版2只需开发一次【成本低】

混合开发模式的技术难点:实现一系列 API 供 JavaScript 调用,让 JavaScript 有访问系统功能的能力

DOM树:html渲染树

响应式编程:ui界面随状态(数据)变而随时改变

diff算法:计算出改变的部分去更新,避免树重构

虚拟dom:每次改变先同步到虚拟dom,最后批量同步真实dom,避免浏览器重绘【树外观变化,例如颜色,字体大小】或回流【树结构变化:例如布局变化,节点增加隐藏】

RN和react的区别:虚拟dom最终映射对象不同:RN是原生控件【依赖JavaScriptCore解释器】,react是浏览器dom树

RN和react开发模式:js+原生【跨平台复杂】

QT开发模式:自绘ui+原生【不同平台实现一个统一接口绘制ui】c++

框架图:框架层+引擎层+嵌入层

image.png

框架层:基础库

引擎层:是核心,实现绘制和显示

潜入层:【跨平台】将引擎安装到不同平台【安卓是java+c++,ios是objective-c,windows是c++】,如果需要支持新平台,再编写一个潜入层即可

开始

看源码+注释:app实例源码:在flutter源码‘examples’目录下

如果不会:1.stackOverflow找答案 2.github flutter下提issue

安装flutter:遇到的坑

Flutter 报错 zsh: command not found

解决办法:

1 、执行:【open ~/.zshrc 】

open ~/.zshrc

2、如果 提示文件不存在,则执行:【vim ~/.zshrc 】新建一个新文件

vim ~/.zshrc

3、新建窗口再执行【open ~/.bash_profile 】

open ~/.bash_profile

4、把 打开的bash_profile 中的内容copy到 上一个窗口新建的zshrc 文件中,保存: 【:wq回车】 5、再使用source命令重新加载一下:【source ~/.zshrc】,下次再编辑这个文件就可以直接执行:【open ~/.zshrc】

source ~/.zshrc

6、运行【flutter -h 】看是否生效

flutter -h

dart语言

var 声明后类型也确定 var t = 'hello'

Object 类型 Object t = 'hello' t = 1000 不可以打印t的长度 t.length 报错

dynamic 类型 dynamic t = 'hello' t = 1000 可以打印t的长度 t.length

常量const const t = '敞亮'

?空安全 fun?.call() // fun 不为空时则会被调用