mvc与mvvm设计模式

MVC与MVVM设计模式

preview

一、MVC(Model- View-Controller)

  • Model(模型):负责保存应用数据、和后端交互同步应用数据,Model主要与业务数据有关、与应用内交互状态无关
  • View(视图):(html、css)负责构建和维护DOM元素,用户可以与View交互,读取、编辑Model
  • Controller(控制器):(js以及js控制/框架:react.js、angular……)是应用程序中处理用户交互的部分。负责从视图读取数据,控制用户输入,并向模型发送数据

view层是顶层,controller在view层之下,model在controller之下;
view指向controller。
control指向model,model 更改时 view 会得到提醒(这个情况是一个单向流)

二、MVP

controller 替换为 presenter。
presenter 与 view 平起平坐。
presenter 监听 view 和 model 的事件,作为中间人在他们之间调解两边的事件,辅助两边交流。

三、MVVM

mvvm是一种架构模式,用来简化用户界面的事件驱动程序设计。

(1). vue中的MVVM:
  • View是dom
  • Model是抽离出来的obj
  • ViewModel是创建的vue对象实例

ViewModel通过数据绑定让Model中的数据实时的在dom中显示,再通过dom listener来监听dom事件,通过改变methods中的操作,从而改变obj中的数据.

1.View层:
  • 视图层
  • 在前端开发中,通常就是DOM层
  • 主要作用是给用户展示各种信息
2.Model层:
  • 数据层
  • 数据可是固定的死数据,更多的来自于服务器,从网络上请求下来的数据
  • 负责保存应用数据、和后端交互同步应用数据
3.ViewModel层:
  • 视图模型层
  • 是view和model沟通的桥梁,ViewModel与View双向绑定,用户在View修改数据或发出ajax等指令时,ViewModel会及时响应,实现了DOM Listener(DOM监听),当dom发生一些事件时,可以监听到并在需要的情况下改变对应的数据接着向下推送数据给Model,Model和View没有直接关系
  • 适合复杂的UI交互项目

preview

Model:这一层或者有歧义。为了更好理解 Model 需要引入 Vuex,在有 Vuex 的情况下,Vuex 提供的数据就是 Model,这符合后端架构中 Model 包含业务逻辑的情况。但是在无 Vuex 的情况下,Model 应该就是 Vue 实例的 data 属性,也就是 JavaScript 数据对象本身。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值