写代码啦
《MVC浅析》
回复数(0) 浏览数(63)
{{topic.upvote_count || 0}} 编辑 回复

MVC 三个对象:

  • 模型model用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。
  • 视图view是它在屏幕上的表示,描绘model的当前状态。当模型的数据发生变化时得到刷新自己的机会。
  • 控制器controller定义用户界面对用户输入的响应方式,起到不同层面间的组织作用,用于控制应用程序的流程,它处理用户的行为和数据model上的改变。(即除了model和view的其它所有)

EventBus API

EventBus 提供了 on、off 和 trigger 等 API,on 用于监听事件,trigger 用域触发事件

const eventBus = $(window)

update(data) {
    Object.assign(m.data, data)
    eventBus.trigger('m:updated')//触发事件
    localStorage.setItem('n', m.data.n)
  }
//监听事件
eventBus.on('m:updated', () => {
      console.log('here')
    })

EventBus 主要用于对象间通信,使用 eventBus 可以满足最小知识原则,m 和 v 互相不知道对方的细节,但是却可以调用对方的功能

表驱动编程是做什么的

表指的是哈希表
表驱动编程可以减少重复代码,只将重要的信息放在表里,然后利用表来编程,与逻辑语句相比较有着更稳定的复杂度
代码示例:

events: {
'click #add1': 'add',
'click #minus1': 'minus',
'click #mul2': 'mul',
'click #divide2': 'div',
}
xxx(key){
if( key in events) {
const value = events[key]
}
return value
}

我所理解的模块化

模块化是将程序拆分为可按功能需求导入的内部数据私有的单独模块。

模块化可以降低代码耦合度,减少重复代码,提高代码重用性,并且在项目结构上更加清晰,便于维护。

{{topic.upvote_count || 0}}

MVC 三个对象:

  • 模型model用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。
  • 视图view是它在屏幕上的表示,描绘model的当前状态。当模型的数据发生变化时得到刷新自己的机会。
  • 控制器controller定义用户界面对用户输入的响应方式,起到不同层面间的组织作用,用于控制应用程序的流程,它处理用户的行为和数据model上的改变。(即除了model和view的其它所有)

EventBus API

EventBus 提供了 on、off 和 trigger 等 API,on 用于监听事件,trigger 用域触发事件

const eventBus = $(window)

update(data) {
    Object.assign(m.data, data)
    eventBus.trigger('m:updated')//触发事件
    localStorage.setItem('n', m.data.n)
  }
//监听事件
eventBus.on('m:updated', () => {
      console.log('here')
    })

EventBus 主要用于对象间通信,使用 eventBus 可以满足最小知识原则,m 和 v 互相不知道对方的细节,但是却可以调用对方的功能

表驱动编程是做什么的

表指的是哈希表
表驱动编程可以减少重复代码,只将重要的信息放在表里,然后利用表来编程,与逻辑语句相比较有着更稳定的复杂度
代码示例:

events: {
'click #add1': 'add',
'click #minus1': 'minus',
'click #mul2': 'mul',
'click #divide2': 'div',
}
xxx(key){
if( key in events) {
const value = events[key]
}
return value
}

我所理解的模块化

模块化是将程序拆分为可按功能需求导入的内部数据私有的单独模块。

模块化可以降低代码耦合度,减少重复代码,提高代码重用性,并且在项目结构上更加清晰,便于维护。

63
回复 编辑