首页 > 其他分享 >Flutter一些概念(一)

Flutter一些概念(一)

时间:2024-08-24 15:37:27浏览次数:6  
标签:状态 编译 概念 UI 应用 组件 一些 Flutter

1 简述Flutter是什么以及它的主要优势

Flutter是一种由Google开发的开源移动应用开发框架,可以用于构建高度定制化、美观并且性能卓越的移动应用程序,其主要优势有:

  • 跨平台,一次编码,可编译适配多个平台的应用(iOS ,Android, Web)等,可大大减少开发时间和成本;
  • 高性能,Flutter的性能接近于原生应用,直接使用Dart语言编译成原生代码,避免了使用桥接带来的性能损耗;
  • 热重载,可在不编译整个应用的情况下,即时看到代码更改的效果,极大提高了开发效率;
  • 丰富的组件库,提供了丰富的UI组件,可以快速构建出美观且功能丰富的界面;

2 Dart语言的优势有哪些

  • 即时编译(JIT),可以在运行时优化代码,提高执行速度
  • 预编译(AOT),允许应用在发布前就编译成机器码,运行时不用做任何的编译操作,大大提高了启动速度和运行效率;
  • 类型安全,可在编译时就捕获许多类型错误,提高应用的稳定性和性能;
  • 跨平台性能,可编译成多种平台的原生代码,
  • 其他,如并发支持等;

3 怎样管理Flutter应用的状态

涉及到数据在UI组件之间的共享和同步,几种流行的状态管理库:

3.1 Provider

优点: 轻量级,内置于Flutter中,适合基本的状态管理 ,通过InheritedWidger机制简化了状态的传递和访问,使得UI组件能够响应状态的变化;
缺点:状态更新是通过ChangeNofifier等机制来实现,这在复杂应用中可能稍显不足;

3.2 GetX

优点:全能框架,不仅可以用于状态管理 ,还支持路由和依赖注入,简单易用,性能优秀
缺点:使用了全局单例的模式,可能会带来类型冲突和内存回收问题

3.3 Mobx

优点: 通过响应式编程简化了状态与UI的绑定,使得状态变化能够自动触发UI更新,它用于需要复杂状态逻辑和异步操作的场景
缺点:相比于其他状态管理库,学习上手难度较高;

3.4 Redux

优点 :可以了集中式存储、操作和减速器,适用于需要强大可预测性和工具支持的大型应用程序,它的单向数据流和中间件支持使得状态管理变得可预测肯易于测试
缺点:学习成本较高,且需要编写更多的样板代码;

4 BLoC 是什么

(Business Login of Components)是一种设计模式,主要用于将业务逻辑从UI组件中分离出来,这种模式有助于提高代码的可维护性、可测试性以及复用性

  • 业务逻辑组件(Bloc),包含了处理业务逻辑的代码,并且与Ui组件分离,可以响应来自UI的事件,并根据这些事件来更新应用的状态
  • 状态(State): 是应用某一时刻的快照,它可以是任何数据类型。状态的变化会触发UI的更新
  • 事件(Event):事件是UI发送到Bloc的信号,表示了发生了某些事情,例如用户的操作或数据的更新请求
  • 转换器(Converter):转换器是将外部事件转换为内部事件的逻辑,它通常用于处理异步操作,如网络请求或数据库查询;

标签:状态,编译,概念,UI,应用,组件,一些,Flutter
From: https://www.cnblogs.com/WoodJim/p/18377826

相关文章

  • 一些题
    一些题模拟赛遇到的trick,有意思的,有启发的题,不一定很难。蜀道难噫吁嚱,危乎高哉!蜀道之难,难于上青天!蚕丛及鱼凫,开国何茫然!尔来四万八千岁,不与秦塞通人烟。西当太白有鸟道,可以横绝峨眉巅。地崩山摧壮士死,然后天梯石栈相钩连。上有六龙回日之高标,下有冲波逆折之回川。黄鹤之飞尚不......
  • TensorFlow 的基本概念和使用场景
    TensorFlow是一个开源的机器学习框架,由Google开发和维护。它允许开发者使用图形计算的方式构建和训练机器学习模型。TensorFlow的基本概念如下:张量(Tensor):TensorFlow使用张量来表示数据。张量是多维数组,在计算图中流动,是TensorFlow的基本数据单元。张量可以是标量(0维数组)、......
  • 什么是大模型?一文读懂大模型的基本概念_看完这篇就足够了~
    大模型是指具有大规模参数和复杂计算结构的机器学习模型。本文从大模型的基本概念出发,对大模型领域容易混淆的相关概念进行区分,并就大模型的发展历程、特点和分类、泛化与微调进行了详细解读,供大家在了解大模型基本知识的过程中起到一定参考作用。本文目录如下:·大模型的......
  • 【网络协议】精讲路由表概念!图解超赞超详细!!!
    亲爱的用户,搜索微信公众号:“风云说通信”,帮忙点点免费的广告,即可免费阅读该文章哦~~关注公众号,博主会定期给您推送更多免费干货喔~~目录前言1.路由表定义  2.路由控制分类3.路由协议的分类4.IP地址与路由控制5.IP数据报的发送和转发6.路由表和转发表区别6.1路由表......
  • 分块、莫队、块状链表及一些根号方法 总结
    第二分块没改出来给我干破防了。提交记录:五彩斑斓的世界()。分块的种类序列分块:本质是在下标轴(\(i\))上分块。值域分块:本质是在值的轴(\(a_i\))上分块。操作分块:本质是在时间轴(一般是输入顺序)上分块。这几种分块应该是可以套的。分块、莫队、根号分治的核心平衡。平衡整块......
  • 读软件开发安全之道:概念、设计与实施07密码学(上)
    1. 加密工具1.1. 加密工具之所以没有得到充分使用,就是因为人们往往认为密码学是一个准入门槛极高的专业领域1.2. 如今的加密学大部分都源自纯数学,所以只要能够正确使用,加密学确实行之有效1.2.1. 不代表这些算法本身确实无法破解,而是需要数学领域出现重大突破才能实现破解......
  • 八大排序一些总结
    基于比较的排序时间复杂度空间复杂度稳定性选择排序O(N^2)O(1)无冒泡排序O(N^2)O(1)有插入排序O(N^2)O(1)有归并排序O(N*logN)O(N)......
  • Flutter实战篇
    第四章Flutter实战4.1FluterAPP代码结构''lib”Dart代码目录“ios”、“android”是两个平台相关代码、配置目录pubspec.yaml是依赖的组件库配置如:environment:sdk:">=2.12.0<3.0.0"dependencies:flutter:sdk:flutter#Thefollowinga......
  • STL map、set、multi_map、multi_set 基本概念与用法
    目录基本概念关联式容器键值对树形结构的关联式容器set描述set的使用map描述map的使用multiset描述multiset简单使用multimap描述底层结构基本概念关联式容器在初阶阶段,我们已经接触过STL中的部分容器,比如:vector、list、deque、forward_list(C++11)等,这些容器统称为序列式容......
  • 关于Protobuf在使用中的一些注意点
    Protobuf是谷歌旗下的一款二进制序列化协议协议的编写在项目中新建一个xxx.proto文件文件的格式第一行写protobuf的版本syntax="proto3";第二行写包的名字在C#中就说命名空间的名字,避免重复例如packageTest;接下来写协议内容例如以下示例关于protobuf的具体语法......