GetX 是什么?
GetX 是 Flutter 上非常流行的一个轻量级、高性能的状态管理、路由管理和依赖注入框架。
它的目标是:少写代码,高性能,易上手。
可以把 GetX 理解为三合一工具包:
- 状态管理(State Management)
- 管理 UI 与数据之间的同步。
- 路由管理(Route Management)
- 替代
Navigator
,写法更简单。
- 替代
- 依赖注入(Dependency Injection,DI)
- 管理控制器和服务的生命周期。
引入GetX
在pubspec.yaml
加入依赖就可以
dependencies:
flutter:
sdk: flutter
# get: ^3.26.0
get: ^4.7.2
保存的时候flutter会自动下载依赖,如果依赖不合适,会报错,如下:
[getx_quickstart_learn] flutter pub get --no-example
Resolving dependencies...
The current Dart SDK version is 3.8.1.
Because getx_quickstart_learn depends on get >=1.0.1 <4.0.0-nullsafety.0 which doesn't support null safety, version solving failed.
The lower bound of "sdk: '>=2.1.0 <3.0.0'" must be 2.12.0 or higher to enable null safety.
For details, see https://dart.dev/null-safety
You can try the following suggestion to make the pubspec resolve:
* Try upgrading your constraint on get: flutter pub add get:^4.7.2
Failed to update packages.
使用flutter pub outdated
可以看到项目里哪些包可以升级
(base) xieshaolin@xieshaolindeMacBook-Pro getx_quickstart_learn % flutter pub outdated
Showing outdated packages.
[*] indicates versions that are not the latest available.
Package Name Current Upgradable Resolvable Latest
direct dependencies: all up-to-date.
dev_dependencies:
flutter_lints *5.0.0 *5.0.0 6.0.0 6.0.0
transitive dependencies:
characters *1.4.0 *1.4.0 *1.4.0 1.4.1
material_color_utilities *0.11.1 *0.11.1 *0.11.1 0.13.0
meta *1.16.0 *1.16.0 *1.16.0 1.17.0
vector_math *2.1.4 *2.1.4 *2.1.4 2.2.0
transitive dev_dependencies:
leak_tracker *10.0.9 *10.0.9 *10.0.9 11.0.1
leak_tracker_flutter_testing *3.0.9 *3.0.9 *3.0.9 3.0.10
leak_tracker_testing *3.0.1 *3.0.1 *3.0.1 3.0.2
lints *5.1.1 *5.1.1 6.0.0 6.0.0
test_api *0.7.4 *0.7.4 *0.7.4 0.7.7
vm_service *15.0.0 *15.0.0 *15.0.0 15.0.2
2 dependencies are constrained to versions that are older than a resolvable version.
To update these dependencies, edit pubspec.yaml, or run `flutter pub upgrade --major-versions`.
(base) xieshaolin@xieshaolindeMacBook-Pro getx_quickstart_learn %