mvvm框架是什么 它和其他框架的区别
MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自动传递给 View,即所谓的数据双向绑定。Model 层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑;View 代表UI 组件,它负责将数据模型转化成UI 展现出来,ViewModel 是一个同步View 和 Model的对象。在MVVM架构下,View 和 Model 之间并没有直接的联系,而是通过ViewModel进行交互,Model 和 ViewModel 之间的交互是双向的, 因此View 数据的变化会同步到Model中,而Model 数据的变化也会立即反应到View 上。
Vue.js 是一个提供了 MVVM 风格的双向数据绑定的 Javascript 库,专注于View 层。它的核心是 MVVM 中的 VM,也就是 ViewModel。 ViewModel负责连接 View 和 Model,保证视图和数据的一致性,这种轻量级的架构让前端开发更加高效、便捷。
Xamarin Forms MvvM框架之FreshMvvM翻译一
FreshMvvm是专门为Xamarin.Forms设计的轻量Mvvm框架。 它是简单和灵活的。
当Xamarin.Forms发布时,我(Michael Ridland)是Xamarin传统应用程序的一部分。 我想将项目移到Xamarin.Forms上,但是在该项目中我使用的是MvvMCross。 当时MvvmCross不支持Xamarin.Forms,所以我有几个选择
关于MvvmCross的***的部分是它是双向数据绑定到原生的iOS / Android控件,但由于Xamarin.Forms已经拥有Databinding内置,这是没有用的,MvvMCross太大了,我不需要这么大。
我也无法找到一个可以轻松移动的替代方案。所以我做了属于我自己简单并且灵活MvvM框架。
它是从这个帖子开始的 —— 翻译在这 ,为Xamarin.Forms实现自己的Mvvm。 我尽量为自己的MvvM框架做得简单。
从来没有想过来写一个框架,但在几次发布Mvvm解决方案之后,我发现很多人都想要它,并且似乎对此感兴趣。 另外考虑到我从Xamarin.Forms开始就在我所有的项目中使用了这个框架,我知道它的工作原理,所以我创建了FreshMvvm,于是它诞生了。
FreshMvvm中的主要导航形式是PageModel到PageModel,这实际上意味着我们的观点不了解导航。
可以通过实现IFreshNavigationService.来设置任何类型的导航。在示例应用程序中有一个示例,名为CustomImplementedNav.cs。
所以你不需要使用你自己的IOC容器,FreshMvvm自带了一个内置的IOC容器,它使用的是TinyIOC,但使用不同的命名来避免冲突。要在容器中注册服务注册:
注入时使用:
这也是驱动构建器注入的方式。
我们现在流畅支持API来设置对象在IOC容器内的生命周期。
如下所示,IFreshIOC接口方法返回IRegisterOptions接口。
从register方法返回的接口是IRegisterOptions。
当PageModels被推送到IOC容器中的services可以被推入构造函数。
每个PageModel都有一个名为“CoreMethods”的属性,当一个PageModel被推送时,它被自动填充,它是大多数应用程序需要的基本功能,如弹消息框,推送,弹出等。
PageModel Init PropertyChanged
在FreshMvvm中可以进行任何类型的导航,通过实现自定义导航服务来完成自定义或高级场景。即使有这种能力,发现在FreshMvvm中做高级导航方案有点困难。在我回顾了FreshMvvm的所有支持问题之后,我发现人们的基本问题是他们希望能够多次使用我们内置的导航容器,其中两个主要例子是
为了支持这两种情况,我得出结论,FreshMvvm需要具有命名NavigationServices的能力,以便我们可以支持多个NavigationService。
在下面我们运行一个单一的主细节的两个导航堆栈。
Xamarin.Forms中有些情况可能需要运行多个导航堆栈。 一个很好的例子是当你有一个用于认证的导航堆栈和一个应用程序主区域的堆栈。
首先我们可以为导航容器设置一些名称。
然后我们可以创建我们的两个导航容器并分配到主页面。
一旦我们设置好了,我们现在可以切换我们的导航容器。
FreshMvvm 1.0的第二个主要要求是允许自定义IOC容器。 在您的应用程序已经具有要使用的容器的情况下。
使用自定义IOC容器非常简单,因为您只需要实现单个接口。
然后在系统中设置IOC容器。
FreshIOC.OverrideContainer(myContainer);
Android框架模式——MVVM
MVVM全名是Model-View-ViewModel,MVVM可以看作MVP的升级版。
还是以点击按钮对数字+1为例子,将其改造成MVVM模式。与MVP不同的地方是,ViewModel会跟View进行绑定。这里会用到Android的 Data Binding。关于Data Binding,可以看下这篇文章介绍: Data Binding Library
跟MVP的一样
改写布局,增加Data Binding。
vm_activity.xml:
VmActivity类,将View与ViewModel进行绑定:
ViewModel负责业务逻辑处理,并且数据有更新直接通知View去更改。
关于mvvm框架和mvvm框架图的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。