没有后端基础如何理解MVC、MVP和MVVM可以以JavaScript举例吗

Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。
它也可以带有逻辑,在数据变化时更新控制器。
View(视
Controller(控制器) - 控制器作用于模型和视
它控制数据流向模型对象,并在数据变化时更新视
它使视
MVC是比较直观的架构模式,用户操作->View(负责接收用户的输入操作)->Controller(业务逻辑处理)->Model(数据持久化)->View(将结果反馈给View)。
什么是MVP模式?MVP 全称是Model - View - Presenter ,是模型(model)-视
MVP是把MVC中的Controller换成了Presenter(呈现),目的就是为了完全切断View跟Model之间的联系,由Presenter充当桥梁,做到View-Model之间通信的完全隔离。
Model:业务逻辑和数据处理(数据库存储操作,网络数据请求,复杂算法,耗时操作)。
View : 对应于Activity,负责View的绘制以及与用户交互。
Presenter:负责完成View于Model间的交互 (有一点还需要注意,presenter是双向绑定的关系,因此,在设计的时候就要注意接口和抽象的使用,尽可能的降低代码的耦合度,这也是mvp的宗旨)。
什么是MVVM模式?
MVVM(Model-View-ViewModel)是一种软件设计模式,由微软WPF(用于替代WinForm,以前就是用这个技术开发桌面应用程序的)和Silverlight(类似于Java Applet,简单点说就是在浏览器上运行WPF)的架构师Ken Cooper和Ted Peters开发,是一种简化用户界面的事件驱动编程方式。
由John Gossman(同样也是WPF和Sliverlight的架构师)与2005年在他的博客上发表。
MVVM源自于经典的MVC(Model-View-Controller)模式。
MVVM的核心是ViewModel层,负责转换Model中的数据对象来让数据变得更容易管理和使用。
如果说MVP是对MVC的进一步改进,那么MVVM则是思想的完全变革。
它是将“数据模型数据双向绑定”的思想作为核心,因此在View和Model之间没有联系,通过ViewModel进行交互,而且Model和ViewModel之间的交互是双向的,因此视
MVVM已经相当成熟了,主要运用但不仅仅在网络应用程序开发中。
当下流行的MVVM框架有Vue.js,Anfular JS为什么要使用MVVM?
MVVM模式和MVC模式一样,主要目的是分离视
可复用:你可以把一些视
独立开发:开发人员可以专注于业务逻辑和数据的开发(ViewMode),设计人员可以专注于页面设计。
可测试:界面素来是比较难以测试的,而现在测试可以针对ViewModel来写
参考:
我王者局局mvp
参考:
不需要后端基础来理解mvc mvp mvvm。
mvc 就是模型试
一般在controller和model中间会加一个service来处理下业务。
mvp跟mvc挺像,所不同是p是presenter,用来替代c,这种模式下,不再是model直接映射到模板,而是通过presenter来把model数据拿到,然后由presenter这个代理器来将数据写入到视
mvvm就是从模型数据直接到视
这样去掉了v或者p,不再需要一层控制器或者代理器。
这样的好处就是,针对数据模型编程,改变了数据也就是改变了视
这样大型开发会变得容易些。
m到v就是要监听到数据的变动,比如defineProperty、proxy、不停数据检测等方式来获知数据发生了改变,然后将改变后的数据更新到视
其实实际工作中仍然会三者有些结合或借鉴。
目前大多采用mvvm框架,但是模型仍然是需要独立的,而且也需要service来进行承接,视
有时候我们为了实现松耦合和代码的易维护性,尽量将数据和视

参考:
mvc和mvp基本是一个东西,区别只在于view是否直接操纵model,mvvm则是双向绑定,view可以直接修改model,反过来model的改变直接反应在view上。
从js来看,node的express就是mvc,而angular则是mvvm
参考:
汗啊。
JS不就是MVC中的C吗?
这么一说不就很容易理解了吧?
HTML是MCSS是VM:有什么V:什么样C:怎么样

标签