一、MVC 三个对象的分别作用及伪代码示例
- M - Model(数据模型),数据模型,负责数据相关的任务
let Model = {
data: {
create: {
delete: {
update(data) {
Object.assign(m.data, data);
eventBus.trigger("m:update");
localStorage.setItem('n', m.data.n)
},
get: {
};
- V - View(视图),负责用户界面
let view={
el:
template{}
html:``
init(){
v.el:
},
render(){
}
}
- C - Controller(控制器),负责监听用户事件,然后调用 M 和 V 更新数据和视图
Controller = {
init(){
v.init()
v.render()
c.autoBindEvents()
eventBus.on('m:update', () => { v.render() })
},
events:{
method() {
data =
m.update(data)
},
autoBindEvents() {
二、EventBus 的 API及API作用、伪代码示例
- event bus(事件总线),用于组件之间的监听与通信。
- EvetBus API有三个,分别为
EventBus.on()监听事件 ,EventBus.off()取消监听
,EventBus.trigger()触发事件
EventBus.on() 监听事件
EventBus.off() 取消监听
EventBus.trigger() 触发事件
eventBus.on('监听事件',()=>{})
eventBus.off('监听事件',()=>{})
eventBus.trigger('m:updated')
三、表驱动编程
- 表驱动法,又称之为表驱动、表驱动方法。 表驱动方法是一种使你可以在表中查找信息,而不必用很多的逻辑语句(if或Case)来把它们找出来的方法。事实上,任何信息都可以通过表来挑选。在简单的情况下,逻辑语句往往更简单而且更直接。但随着逻辑链的复杂,表就变得越来越富有吸引力了。
- 在JS中,表就是指的哈希表结构,使用表驱动编程,能使重复冗余的代码变的稳定简洁。
- 代码示例
- 假设day的起始值为1,下面的代码就是为了输出某天是星期几
function weekday(day) {
if(day&7===0){
return '星期日';
}
else if(day%7===2){
return '星期二';
}
else if(day%7===3){
return '星期三';
}
else if(day%7===4){
return '星期四';
}
else if(day%7===5){
return '星期五';
}
else if(day%7===6){
return '星期六';
}
}
function week(days){
let weekdays=['星期日','星期一','星期二','星期三','星期四','星期五','星期六']
return weekdays[days%7]
}
四、如何理解模块化
- 模块化是指将一个复杂问题,自上而下逐层把系统划分为若干模块的过程。模块化可以降低代码耦合度,减少重复代码,提高代码重用性,并且在项目结构上更加清晰,便于维护。