一、 什么是MVC?
- M 是 Model,数据模型,负责数据相关的任务
- V 是 View,视图,负责用户界面
- C 是 Controller,控制器,负责监听用户事件,然后调用 M 和 V 更新数据和视图
这三层是紧密联系在一起的,但又是互相独立的,每一层内部的变化不影响其他层。每一层都对外提供接口。这样一来,就可以告别意大利面条式代码,进而实现模块化,修改外观或者变更数据都不用修改其他层,大大方便了维护和升级。模块化使得各模块之间解耦,每一个模块不需要知道其他模块如何实现,甚至可以一个模块用jQuery,一个用Vue。
- Model:模型model用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法,会有一个或多个视图 监听 此模型。一旦模型的数据发生变化,模型将 通知 有关的 视图。
// 伪代码示例
Model = {
data: { 程序需要操作的数据或信息 },
create: { 增数据 },
delete: { 删数据 },
update(data) {
Object.assign(m.data, data) //使用新数据替换旧数据
eventBus.trigger('m:upate') // eventBus触发'm:update'信息, 通知View刷新
},
get:{ 获取数据 }
}