推荐:FreshMvvm —— 轻量级Xamarin.Forms MVVM框架
项目地址:https://gitcode.com/rid00z/FreshMvvm
项目介绍
FreshMvvm 是专为 Xamarin.Forms 设计的超轻量级MVVM框架,以其简单和灵活的特性而备受推崇。它旨在提供易学易用的开发体验,是那些尚未准备好采用RxUI但又希望实现高效MVVM架构的开发者的理想选择。
项目技术分析
FreshMvvm 的核心设计理念在于约定优于配置。它的特点包括:
- 页面模型导航:直接从一个PageModel导航到另一个PageModel,简化视图与导航的关系。
- 自动绑定上下文:页面的BindingContext会自动设置为对应的PageModel对象。
- 事件自动化:自动处理页面事件,如显示和隐藏。
- 基础方法支持:PageModel上的初始化、反初始化等基本方法可以接收参数值。
- 内置IOC容器:提供了依赖注入功能,允许在构造函数中注入服务。
- 自定义导航:通过简单的接口实现复杂的导航逻辑。
项目及技术应用场景
FreshMvvm 可广泛应用于各种类型的 Xamarin.Forms 应用程序,尤其适合以下场景:
- 快速原型开发:由于其轻量化设计,非常适合用于快速构建应用原型。
- 教育示例:对于初学者,FreshMvvm 是学习MVVM模式的理想起点。
- 小到中型项目:对于不需要复杂状态管理和反应式编程的项目,FreshMvvm 提供了足够强健的基础。
- 团队协作:因其简单的API,团队成员可以更容易地理解和维护代码。
项目特点
- 轻量级:与其他大型MVVM框架相比,FreshMvvm 极简且不带额外负担。
- 特定于Xamarin.Forms:针对Xamarin.Forms平台进行了优化,充分利用其内置特性。
- 易于学习:设计时考虑到了易用性,使得开发者能够快速上手。
- 灵活性:通过约定而非配置,让开发者可以根据自己的需求定制行为。
- 强大的导航:支持基本导航,也允许自定义复杂的导航策略。
示例代码
页面间的导航如下所示:
await CoreMethods.PushPageModel<QuotePageModel>();
await CoreMethods.PushPageModel<QuotePageModel>(null, true); // 弹出模态
await CoreMethods.PushPageModel<QuotePageModel>(pm => pm.Quote = "Quote 23");
自定义导航
通过实现 IFreshNavigationService
接口,你可以完全自定义导航逻辑。
注册服务
依赖注入的注册与解析:
FreshIOC.Container.Register<IDatabaseService, DatabaseService>();
IDatabaseService dbService = FreshIOC.Container.Resolve<IDatabaseService>();
页面模型方法
每个PageModel都有一系列的方法,如:
public FreshBasePageModel PreviousPageModel { get; set; }
public Page CurrentPage { get; set; }
public IPageModelCoreMethods CoreMethods { get; set; }
public virtual void Init(object initData) {}
public virtual void ReverseInit(object returndData) {}
总的来说,FreshMvvm 是一个既强大又简洁的Xamarin.Forms MVVM解决方案,无论你是新手还是经验丰富的开发者,都可以从中受益。现在就开始使用它来构建你的下一个Xamarin.Forms应用吧!