mvc/mvvm小小的总结
mvc/mvvm
mvc 分为三层,其实M层是数据模型层,它是真正的后端数据在前端js中的一个映射模型,他们的关系是:数据模型层和视图层有映射关系,model改变,view展示也会更改,当view产生用户操作或会反馈给controller,controller更改model,这个时候view又会进行新的数据渲染
这是纯纯的MVC的模式,但是很多框架都会有一些更改
前端mvc框架,如angularjs,backbone:
会发现,用户可以直接操作controller(例如用户更改hash值,conrtoller直接监听hash值变化后执行逻辑代码,然后通知model更改)
控制器可以直接操作view,如果,让某一个标签获得进入页面获得焦点,不需要model来控制,所以一般会直接操作(angularJS,指令)
view可以直接操作model (数据双向绑定)
MVP:
view和model不能直接通信,所有的交互都由presenter来做,其他部分的通信都是双向的
view较薄 ,presenter较为厚重
MVVM:
MVVM和MVP及其相似,只是view和viewmodel的通信是双向绑定,view的操作会自动的向viewmodel通知