MVC模式:
M: model - 模型层,数据的增删改查,
V:view - 视图层,前端页面(html,javascript,css)
C: controller - 控制层,处理业务,包含了路由
比方说现在有一个订单,用户要去下订单要去支付,要去创建一个订单,页面上用户触发一个点击事件下单,随后页面触发一个事件,这个在页面里面就是一个view。随后通过事件触发以后,这个事件到达后端,后端在路由配置里面会接收到用户请求,用户的请求请求到我们的后端,要去执行哪一个方法,要去执行哪一个controller或者action,这个是由路由控制的。路由拿到用户请求去分析后,其实就是一个request请求映射,映射到我们某一个控制器那么就会直接把用户的请求丢到控制器,让我们的控制器去针对请求做相应的处理,这一层就是controller层,controller就是包含了路由和控制器,路由只用来处理用户的请求,拿到请求,丢给下一个控制器,不做额外处理,仅仅负责页面导向作用。这是侯,我们页面处理完毕,要针对订单做保存,或者记录日志等这些数据,这些数据就会通过模型层Model做一个相应的增加操作,可以增加一条日志,可以增加一条订单等,这些数据保存到数据库里面,随后做一个查询操作,最后处理完之后,Model层查询拿到数据后,也会返回数据给controller层,然后再一次进行相应的业务处理,包装完数据后,抛给view,到页面上做一个渲染。这样一个过程就是MVC处理过程。
mvc图解
MVVM模式:
VIEW指的是整个视图层里面页面html,MODEL就是每一个页面里面所存在的一些数据,这些数据是什么,比如说查询一个订单,订单数据就是MODEL,它是一个JSON对象。用户要去注册或者修改个人信息,也就是说我们所有的需要在页面里面去展示的去渲染的那些数据都是我们的MODEL。
假设是以前的开发模式(js/jquery):
用户修改自己的个人信息,此时修改的时候,首先
要去获得一个用户现有的个人信息,获得个人信息以后发送一个ajax到后端获取一个相应的json对象,这个json对象此时在我们的model里面,在model里面后,此时我们需要把数据渲染到页面里面去,这个过程我们会写一个相应的方法,从model里面获取到相应的字段,比方说有用户昵称,性别等,获得后一个一个把他渲染到用户组件里面,这个过程就是以前的js/jquery的一种方式,当我们把数据渲染到页面里面后,用户要去修改提交,用户修改我们监听用户的一个动作,用户修改了文本框,raido等一些数据后,我们都会写相应的方法把这些数据重新的封装到我们的model里面去,这个过程我们需要额外的写一个方法的,当然我们也可以直接使用form的一个序列化,把form里面的数据序列化成一个json对象,随后再提交到后端去做一个修改的操作。
现在要使用mvvm的方式:
就不再操作dom了,此时引入一个新的概念viewmodel,他是一个核心调度者或者是协调者,专门是在中间做一个数据的传递的一个工作。
比方说,现在我们拿到一个用户的数据后,我们不是直接交给我们的view去渲染,我们会把相应的一个用户数据丢给我们的vm,让他去做一个渲染的动作,随后我们的数据就可以在我们的HTML里面去做到一个相应的渲染了。随后用户再到我们的页面里面操作了其他的dom的一些元素,修改了一些数据,这个时候开发者不用再写额外的一些方法了,只要用户修改了数据,那些相应的数据就会通过我们的vm再一次的传递到我们的model里面去,这整一个双向的动作都是由我们的vm进行相应的处理。这就是数据的双向绑定。
mvvm模式
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。