Flutter的特点与核心概念
特点:
1.跨平台:Flutter至少可以跨5种平台(MacOs、Windows、Linux、Android、Ios),支持嵌入式开发。甚至可以运行于Fuchsia操作系统。
2.丝滑的体验:Flutter内置Material Design 和 Cupertion 风格组件和丰富的motion API,平滑而自然的滑动效果和平台感知。
3.响应式框架
4.支持插件:通过Flutter的插件可以访问本地的API,如相机、蓝牙、Wifi等。可以借助现有的Java、Swift、ObjectiveC、C++代码实现对原生系统的调用。
5.60fps超高性能:Flutter采用GPU渲染技术。
核心概念:
组件、构建、状态、框架等。
组件(Widget):Flutter应用程序用户界面的基本构建块,如按钮、输入框等。甚至布局和动画处理都可以视为组件(Widget)。组件具有属性及方法,属性通常用来改变组件的状态(颜色、大小等)及回调方法的处理(点击事件、手势事件回调等)。
组件可分为有状态和无状态组件。
1.有状态组件是界面会发生变化的组件。(如Scrollable、Animatable等)
2.无状态的组件即界面不会发生变化的组件。(如Text、AssetImage等)
组件嵌套:
复杂的页面通常都是一个一个简单功能的组件组装完成的(有的组件负责布局,有的负责定位等)。这种嵌套组合最大的好处就是解耦。
构建:
可以重写Widget的build方法来构建一个组件
@protected Widget build(BuildContext context);
build即为创建一个Widget的意思,返回值也是一个Widget对象,不管返回的是单个组件还是返回通过嵌套的方式组合的组件都是Widget的实例,可以说Widget是个基类,其他所有的组件都继承Widget。
什么是状态:
Flutter中的状态和React中的状态概念一致。React的核心思想是组件化的思想,应用有组件搭建而成,而组件中最重要的概念是State(状态),State是一个组件的UI数据模型,是组件渲染时的数据依据。可以这么理解:Flutter程序的运行可以认为是一个巨大 的状态机,用户的操作、请求API和系统事件的触发都是推动状态机运行的触发点,触发点通过调用setState 方法推动状态机进行响应。
分层的框架
Flutter框架是一个分层的结构,每一层都建立在前一层之上。