1. MVC 三个对象分别做什么
每个模块都可以写成三个对象,分别是
- M —— Model 数据类型 负责操作所有数据
- V —— View 视图 负责所有UI界面
- C —— Controller 控制器 负责其他
代码示例
将代码重构成mvc模式
// 数据相关都放到m
const m = {
data: {},
create() {},
delete() {},
update() {},
get() {}
}
// 视图相关都放到v
const v = {
el: null,
html: ``, //放html
init() {}, //初始化
render() {} //渲染
}
// 其他操作、方法都放c
const c = {
init() {},
events: {},
add() {},
minus() {},
mul() {},
div() {},
autoBindEvents() {}
}
2. EventBus 有哪些 API,是做什么用的,给出伪代码示例
常用API
on
trigger()
off
具体用法
EventBus.on()
绑定事件
eventBus.on('eventName',fn)
//事件名,回调函数
EventBus.trigger
触发事件
eventBus.trigger('eventName',data)
eventBus.off
解绑事件
eventBus.off('eventName',fn)
3. 表驱动编程
表驱动法就是将要不断`if else`的代码做成哈希表,结构简单明了。
让代码稳定性高,更易修改维护
//不用表编程
if(key===1){
add1()
}
else if(key===2){
add2()
}
else if(key===3){
add3()
}
else if(key===4){
add4()
}else{
add5()
}
//使用表编程
const events = {
1: add1()
2: add2()
3: add3()
4: add4()
5: add5()
}
events[key]()
优点:
- 减少代码重复
- 降低复杂度,结构明晰
- 提高代码可读性
我是如何理解模块化的
优点
- 分层,结构清晰
- 降低了每个模块耦合度
- 多人合作互不干扰 开发人员分工明确,提高开高效率,降低维护成本。