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)来把他们找出来的方法。表驱动编程是一种很重要的编程思想,它的理念是从大量相似的代码中抽取本质的东西,组成哈希表,利用表进行编程,以减少重复代码。
我是如何理解模块化的
模块化将每个部分的代码单独封装起来,使各部分代码实现相互不干扰,使整个代码整洁,方便,高效。