MVVM设计模式理解

版权声明:段子与短视频鸦片看多了,人就会失去长文阅读能力,智商也会变低,办事能力也会变弱,也会失去秋收起义般的大痣 ,反而性格变得爆裂 —— 鲁迅。 https://blog.csdn.net/weixin_41827162/article/details/85011549

MVVM:Model-View-ViewModel

Model:对应数据层的域模型,它主要做域模型的同步。通过 Ajax/fetch 等 API 完成客户端和服务端业务 Model 的同步。在层间关系里,它主要用于抽象出 ViewModel 中视图的 Model。个人理解:后端提供API,后端服务架构是 控制器+数据模型 或者 纯控制器。

View:View是作为视图模板,用于定义结构、布局。它自己不处理数据,只是将ViewModel中的数据展现出来。此外为了和ViewModel产生关联,那么还需要做的就是数据绑定的声明,指令的声明,事件绑定的声明。ViewModel和View之间是双向绑定,意思就是说ViewModel的变化能够反映到View中,View的变化也能够改变ViewModel的数据值。

ViewModel:ViewModel起着连接View和Model的作用,同时用于处理View中的逻辑。在MVC框架中,视图模型通过调用模型中的方法与模型进行交互,然而在MVVM中View和Model并没有直接的关系,在MVVM中,ViewModel从Model获取数据,然后应用到View中。个人理解:web前端的webserver对View进行双向绑定渲染。

整个MVVM实际上实现了前后端分离,通过api来实现前后端交互,前端通过纯js或者双向绑定框架来渲染页面。前后端有各自对服务,只不过后端服务操作数据库,前端服务渲染页面。

大概如:

数据库(MySQL、PostgreSQL)<—双向交互—>api(php、java、Python、node)<—双向交互—>ajax/fetch/websocket(node服务、jQ、js)<—双向绑定—>html(标签、css)

MVVM有利于项目分工和升级,所谓对前后端分离。但也有缺点,就是不利于SEO。

MVC:服务端来渲染数据,老旧模式。MC属于纯后端,V属于前端,js权重不高,有利于SEO。

-

万物基于api,一套api可以针对小程序、app、前端,为何不首先使用。需要SEO对部分,单独分离出项目,采用MVC渲染静态页面或者纯html即可。

-

猜你喜欢

转载自blog.csdn.net/weixin_41827162/article/details/85011549