1.MVC 三个对象分别做什么
1.Model:
放数据源和对数据的基础操作
// M => Model
let Model={
data:{数据源A,B,C,D...},
fn:增删改查等操作...
}
2.View:
放置视图相关的代码,原则上里面不应该有任何业务逻辑
// V => View
let View ={
html:要显示在页面上的内容(A的名字,B的性别,C的年龄...),
render:视图渲染逻辑....
}
3.Controller:
放置视图与模型之间的映射,原则上这里应该很薄,他只放一些事件绑定相关的代码(router),但并不实现真正的功能,他只是一个桥梁
// C => Controller
let Controller={
'Fn拿A且改C': { Model.getA() , Model.updateC() }
'Fn删B': { Model.deleteB() }
}
View 和 Model 并不是完全脱离的,还是有一些逻辑耦合,因为需要根据修改后的model重新刷新view. 难免view里面沾染一点model的结构.
2.EventBus 有哪些 API,是做什么用的,
用于模块间的通讯,view组件层面,父子组件、兄弟组件通信都可以使eventbus处理
const el = new EventBus();
// 注册一个名叫printHello方法,销毁之前有效
el.on('printHello', 这里写printHello方法的内容)
// 调用名叫printHello方法
el.trigger('printHello', 这里可以传参数)
// 销毁这个名为printHello的方法
el.off('printHello', 名为printHello的方法体(可不传))
3.表驱动编程是做什么的
根据HashMap键的唯一性,将需要做多情况的穷举和遍历查找的情况,转换成:类似查找excel表的形式,通过唯一的key值找到映射的目标内容;大大降低原来方法的复杂度
4.我是如何理解模块化的
- 将重复较多的功能代码,抽离出来,通过变量或者传参的不同,来控制对应输出对应的内容;提高代码利用率和可管理性;
- 代码模块化之后,无论是代码的整体性还是后期进行代码维护都变的清晰简单了起来。如:与逻辑相关的代码统一放到JS文件中,与视图相关的统一放到html文件中,与样式相关的统一放到css文件中。
网友评论