为什么尤雨溪·犹大说VUE没有完全追随MVVM?

严格的MVVM要求View不能和Model直接通信,但是Vue在组件中提供了$refs的属性,允许Model直接操作View,违反了这一规定,所以Vue没有完全遵循MVVM。

MVVM是模型-视图-视图模型的简称。它本质上是MVC的改进版本。MVVM是对视图的状态和行为进行抽象,让我们将视图UI与业务逻辑分离开来。

当然,ViewModel已经为我们做了这些事情。由于需要显示内容,它可以取出模型的数据,并帮助处理视图中涉及的业务逻辑。微软的WPF带来了新的技术体验,如Silverlight、音频、视频、3D、动画等。,这导致了更详细和可定制的软件UI层。

同时,在技术层面上,WPF也带来了绑定、依赖属性、路由事件、命令、数据模板、控制模板等新功能。

MVVM(Model-View-ViewModel)框架的起源是将MVP(Model-View-Presenter)模式与WPF相结合的应用模式发展而来的一种新的架构框架。它基于原有的MVP框架,结合了WPF的新功能,以应对客户日益复杂的需求。

因为WPF技术的出现,MVC架构模型得到了改进,MVVM模型使用了数据绑定基础设施。他们可以轻松地构建UI的必要元素。

可以参考wpf (prism)的复合应用指南。

View绑定到ViewModel,然后执行一些命令向它请求一个动作。接着,ViewModel与Model通信,并告诉它更新以响应UI。这使得为应用程序构建UI变得非常容易。

越容易将界面粘贴到应用程序中,设计师就越容易使用Blend来创建漂亮的界面。同时,当UI和功能松耦合时,功能的可测试性越来越强。

在MVP模式下,为了将UI层和逻辑层分离,设计师在UI层和逻辑层之间增加了一个接口。UI开发人员和数据开发人员都应该尊重这个契约,并根据它进行设计和开发。这样,Web UI和窗口UI都可以理想地使用同一套数据逻辑。

学习MVP的IView层,养成习惯。视图模型听起来比演示者更合适;会把一些事件和命令相关的东西放到MVC的‘C’或者MVVm的‘VM’里面。