浅析MVC

70 阅读1分钟

MVC 三个对象分别做什么

  • M-Model(数据模型) 负责操作所有的数据
const m = {
    data:{数据},
    create(){},
    delete(){},
    update(data){
    object.assign(新数据,旧数据)//用新数据替换旧数据
    eventBus.trigger'新数据'//eventBus触发"新数据信息",通知view刷新页面
    },
    get(){}
}
  • V-View(视图) 负责所有的UI界面
const v={
  el:要刷新的元素
  html:`这里是HTML或者其他需要添加进去的元素`,
  init(container)
    v.el=$(container)
  },
  render(n){刷新页面/重新渲染}
}
  • C-Controller(控制器) 负责其他
const c = {
  init(container) {
      v.init()//初始化View
      v.render()//第一次渲染页面
      c.autoBindEvents()//自动的事件绑定
      eventBus.on('m:updated',()=>{v.render()}//当eventsBus触发'm:updated'时View刷新
  },
  events: {事件},  //事件以哈希表的方式记录存储
  add() {+具体实现},
  minus() {-具体实现},
  mul() {*具体实现},
  div() {/具体实现},
  autoBindEvents() {自动绑定事件}
}

EventBus 有哪些 API,是做什么用的

通过const EventBus = $(window);创建一个EventBus,主要用来对象间通信。
通常使用的API有

  • on: 用来监听事件
  • trigger: 用来触发事件
  • off: 用来事件结束
import $ from 'jquery'
class EventBus {
  constructor() {
    this._eventBus = $(window)
  }
  on(eventName, fn) {
    return this._eventBus.on(eventName, fn)
  }
  trigger(eventName, data) {
    return this._eventBus.trigger(eventName, data)
  }
  off(eventName, fn) {
    return this._eventBus.off(eventName, fn)
  }
}
export default EventBus

表驱动编程是做什么的

表驱动方法是一种使你可以在表中查找信息,而不必用逻辑语句(if 或 case)来把他们找出来的方法。表驱动编程是一种很重要的编程思想,它的理念是从大量相似的代码中抽取本质的东西,组成哈希表,利用表进行编程,以减少重复代码。

我是如何理解模块化的

模块化将每个部分的代码单独封装起来,使各部分代码实现相互不干扰,使整个代码整洁,方便,高效。