What is MVC

173 阅读2分钟

MVC 其实是 Model-View-Controller 的缩写,中文我们常常译作“模型-视图-控制器”。想象一下它就像是一个电视剧或电影的制作团队。

  1. Model(模型):这就像是电影的剧本,包含了所有的数据和逻辑,比如角色的名字,背景故事,还有剧情的发展。在编程中,模型就是处理和管理数据的地方,包括如何获取数据,如何修改数据等。
  2. View(视图):视图就像是电影的场景设计,它决定了用户看到的界面是什么样子的。在编程中,视图就是展示给用户看的界面。比如网页的布局,按钮的颜色等。
  3. Controller(控制器):控制器就像是电影的导演,它负责协调模型和视图,让它们能够配合得很好。在编程中,控制器就是处理用户的输入,然后指导模型和视图如何响应。

所以,MVC 就是这三个部分协同工作,提供一个流畅的用户体验。用户通过控制器发送请求,控制器告诉模型去处理数据,然后将处理结果展示在视图上,最后用户在视图上看到响应的结果。 伪代码示例: M:负责数据层

 let Model={
     data:{数据源},
     create:{增加数据},
     delete:{删除数据},
     update(data){
         Object.assign(m.data,data)//用新数据替换旧数据
         eventBus.trigger('m:update')//eventBus触发'm:update'信息,通知View刷新界面
     }
     get:{获取数据}
 }

V:负责视图层

 let View ={
     el:要刷新的元素,
     html:'要显示在页面上的内容'
     init(){
         v.el:需要刷新的元素
     },
     render(){
         刷新页面
     }
 }

C:负责事件操作

 let Controller={
     init(){
         v.init()//初始化View
         v.render()//第一次渲染页面
         c.autoBindEvents()//自动的事件绑定
         eventBus.on('m:update',()=>{v.render()})
         //当enentsBus触发'm:update'是View刷新
     },
     events:{事件以哈希表的方式记录存储},
     method(){
         data=新数据
         m.update(data)
     },
     autoBindEvents(){自动绑定事件}
 }