-
MVC 三个对象分别做什么,给出伪代码示例
//模型model:数据保存,将请求到的数据传给Controller const m = { data: {}, create() {增 }, delete() { 删}, update() {改}, get() {查} }
//视图view:用户界面,负责HTML界面的渲染 const v = { el: null, // 初始化html html: `代码` , init(container) { v.el = $(container) }, render(n) { } }
//控制器controller:业务逻辑,负责监听并处理view事件,更新和灵活调用Model const c = { init(container) {}) }, events: { 事件}, add() {详细执行}, minus() {详细执行}, mul() {详细执行}, div() {详细执行}, autoBindEvents() {逻辑} } }
-
EventBus 有哪些 API,是做什么用的,给出伪代码示例?
- EventBus 能够简化各组件间的通信,让我们的代码书写变得简单,能有效的分离事件发送方和接收方(也就是解耦的意思),能避免复杂和容易出错的依赖性和生命周期问题。
- EventBus 提供了 on、off 和 trigger 等 API,on 用于监听事件,off用于取消监听,trigger 用域触发事件
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)来把他们找出来的方法。事实上,任何信息都可以通过表来挑选。在简单的情况下,逻辑语句往往更简单而且更直接。但随着逻辑链的复杂,表就变得越来越富于吸引力了。
- 表驱动编程的意义在于逻辑与数据的分离。( 类似于事件委托 )
- 在面对过多相同代码的时候,可以利用表查询替代重复操作,避免产生意大利面式代码
-
我是如何理解模块化的
- 模块化基于最小知识原则, 是一种面向对象程序设计的指导原则,它描述了一种保持代码松耦合的策略。说人话就是,修改代码不需要牵一发而动全身。
- 通过将代码按照不同的模块进行区分,并进行组合,减少代码之前相互影响的可能性
- 提高代码复用率
- 提高代码可维护性
- 避免变量污染,命名冲突
- 依赖关系的管理