一、MVC 三个对象分别做什么
- M:Model(数据模型),负责操作所有数据
- V:View(视图),负责所有 UI 界面
- C:Controller(控制器),处理用户的行为和数据上的改变
以下是示例代码:
const model = {
data: {
// 数据
},
create() { // 增 },
delete() { // 删 },
update(data) { // 改 },
get() { // 查 }
}
const view = {
el: null, // 元素(视图)
html: `
<div></div>
`,
init() { // 初始化元素(视图) },
render() { // 渲染元素(视图) }
}
const controller = {
init() { // 对整个应用的初始化
view.init() // 初始化视图
view.render() // 渲染视图
controller.autoBindEvents() // 绑定事件
},
autoBindEvents() { },
add() { },
minus() { },
mul() { },
div() { },
}
二、EventBus
EventBus 是一个以事件为驱动的消息服务总线。
- on: 监听事件
- trigger(emit): 触发事件
- off: 取消监听
以下是代码示例:
// EventBus.js
class EventBus {
constructor() {
this._eventBus = $(window)
}
on(eventName, fn) {
return this._eventBus.on(eventName, fn)
}
trigger(eventName, data) {
return this._trigger.trigger(eventName, data)
}
off(eventName, fn) {
return this._eventBus.off(eventName, fn)
}
}
export default EventBus
// new.js
import EventBus from 'EventBus.js'
const eventBus = new EventBus()
eventBus.on()
eventBus.trigger()
eventBus.off()
三、表驱动编程是做什么的
表驱动编程方法是一种使你可以在表中查找信息,而不必用很多的逻辑语句(if或Case)来把它们找出来的方法。在简单的情况下,逻辑语句往往更简单而且更直接。但随着逻辑链的复杂,复杂度也会越来越高。表就可以减少重复代码,只将重要的信息放在表里,然后利用表来编程,与逻辑语句相比较有着更稳定的复杂度。
作者:云卷云舒听雨声
链接:www.jianshu.com/p/938da4774…
来源:简书
示例代码(未使用表驱动):
if (n === '1') {
console.log('a')
} else if (n === '2') {
console.log('b')
} else if (n === '3') {
console.log('c')
} else if (n === '4') {
console.log('d')
}
示例代码(使用表驱动):
const obj = {
'1': 'a',
'2': 'b',
'3': 'c',
'4': 'd'
}
const n = '2'
console.log(obj[n])