MVC

118 阅读1分钟

MVC

作用

  • M:模型(Modle)【数据的保存、增删改查】
  • V:视图(View)【用户能看见的东西】
  • C:控制器(Controller)【响应式操作】
const m = {
    data: {},
    create() {增 },
    delete() { 删},
    update() {改},
    get() {查}
}

const v = {
    el: null,
    // 初始化html
    html: `代码`
    ,
    init(container) {
        v.el = $(container)
    },
    render(n) { }
}

const c = {
    init(container) {})
    }, 
    events: { 事件}, 
    add() {详细执行},
    minus() {详细执行},
    mul() {详细执行},
    div() {详细执行},
    autoBindEvents() {逻辑}
    }

}

EventBus

当一个事件执行,eventBus 触发 m:updated eventBus.trigger('m:updated')

eventBus 监听 m:updated,当 m:updated 触发时,执行一些内容

eventBus.on('m:updated',()=>{
     v.render(m.data.n)
 })

表驱动编程

实现逻辑和数据的分离

c = {
     events:{
         'click #add1':'add',
         'click #minus1':'minus',
         'click #mul2':'mul',
         'click #divide2':'div'
     },
     autoBindEvents(){
         for(let key in c.events){
             const value = c[c.events[key]]
             const spaceIndex = key.indexOf(' ')
             const part1 = key.slice(0, spaceIndex)
             const part2 = key.slice(spaceIndex + 1)
             v.el.on(part1,part2,value)
         }
     }
 }

模块化

简单的说就是将一个或多个功能封装在一个模块中,这么做的好处:提高了可维护性、提高了复用性,减少不同功能代码的耦合

总结

无论是MVC、表驱动、模块化中心思想就是减少耦合,使得以后的维护更加方便高效 MVC降低了视图和抽象数据的耦合 表驱动降低了逻辑和数据的耦合 模块化降低了不同功能代码之间的耦合