文章目录
我们在上一章回中介绍了"四个bublue包对比与总结"相关的内容,本章回中将介绍Get包.闲话休提,让我们一起Talk Flutter吧。
1. 概念介绍
我们在本章回中将介绍Get包,它是一个三方插件,功能十分强大,不过我看了一下Github上的开发人员后发现该包竟然是英国一位律师开发的,写程序只是他的业余爱
好,果然十分强大。我们将在本章回中详细该包的功能和用法。
2. 功能与用法
2.1 主要功能
该包的主要功能有四大块,详细如下:
- 状态管理:该包提供了状态管理功能,而且使用十分方便,据文档所说性能比Provider还要好;
- 路由管理:该包对Navigate组件进行了封装,原生有的路由功能它都有,最重要的是不需要Context;
- 依赖注入:该包提供依赖管理功能,不过主要是对状态管理进行功能上的辅助;
- 实用工具:该包可以快速地使用SnackBar和Dialog,并且还能切换语言和主题;
上面介绍的这些功能确实比较多,我还担心在项目中引入该包后会导致生成物变大,看完文档后发现没必要担心,因为该包不会把所有的内容都添加到项目中,它是分开编
译的,用什么功能就在项目中加入什么功能。在接下来的章回中,我们将详细介绍该包提供的这些功能。
2.2 使用方法
该包的使用方法和其它包稍微有些不同,主要是该包需要在顶层组件中做修改,这点类似Provider.下面是详细的使用方法:
- 在yaml文件中配置get包并且通过pub get命令获取包中的内容到本地项目中;
- 在runApp中MainApp的地方配置GetMaterialApp,其它的内容放到它的home属性中;
上面的方法中使用了GetMaterialApp组件,这是包中提供的组件同,它的用法类似MaterialApp,我们将在后面的章回中单独介绍这个组件。这种方法相当于在整个
项目中使用GetMaterialApp组件,我开始时还担心它会影响项目中的组件或者配置,后来阅读官方文档后发现没有必要担心,因为GetMaterialApp组件不是新定义
的组件,它只是在官方MaterialApp组件的基础上做了一些配置。如果实在是不放心,我们再提供一种使用方法:定义一个StatelessWidget,然后在build方法中
return这个GetMaterialApp。这种方法相当于只在某个页面中单独使用GetMaterialApp组件,其它页面中还是使用官方的MaterialApp组件.
3. 示例代码
///在整个项目中使用GetMaterialApp
void main() => runApp(GetMaterialApp(home: Home()));
///只在单独页面中使用GetMaterialApp
class ExGetMaterialApp extends StatelessWidget {
const ExGetMaterialApp({super.key});
@override
Widget build(BuildContext context) {
return GetMaterialApp(
home: GetHomePage(),
theme: ThemeData(
///建议打开Material主题,否则页面风格太难看
useMaterial3: true,
),
);
}
}
我们在上面的示例代码中演示了两种使用GetMaterialApp组件的方法,细节的看官就会发现它和MaterialApp组件的几乎一样。有看官提问这两方法哪种好一些呢?
其实没有优劣之分,如果想在当于在整个项目中使用GetMaterialApp组件,那么就使用示例代码中的第一种方法。如果只想在单个页面中使用GetMaterialApp组件,
那么就使用示例代码中的第二种方法。我在这里就不演示程序的运行结果了,建议大家自己动手去实践。
4. 内容总结
最后,我们对本章回的内容做一个全面的总结:
- Get包是三方组件,它提供了状态管理,依赖注入,路由管理以及一些实用工具;
- Get包提供的功能十分强大,不过所有功能都是基于GetMaterialApp组件实现;
- GetMaterialApp组件有两种使用方法,一种用于整个项目,另外一种用于单个页面;
看官们,与"Get包简介"相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!