写代码啦
浅谈MVC
回复数(0) 浏览数(36)
{{topic.upvote_count || 0}} 编辑 回复

什么是MVC,在此之前一点不懂,通过课程我的理解就是:封装
只是将代码分成三块(M,V,C)进行封装。这样理解起来就明白多了

MVC 三个对象分别做什么,给出伪代码示例

M(mode):模型model用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法,会有一个或多个视图监听此模型。一旦模型的数据发生变化,模型将通知有关的视图。

const m={
data:{ }
}

V(view):视图view是它在屏幕上的表示,描绘的是model的当前状态。当模型的数据发生变化,视图相应地得到刷新自己的机会。

const v={
container: ;
html:``;
}

C(controller):控制器,用于存储其他内容,定义用户界面对用户输入的响应方式,起到不同层面间的组织作用,用于控制应用程序的流程,它处理用户的行为和数据model上的改变。

const c={
init:{}
bindEvents:{};
}
```

EventBus 有哪些 API,是做什么用的,给出伪代码示例

在介绍EventBus的API之前先介绍下,什么是EventBus

EventBus能够简化各组件间的通信,让我们的代码书写变得简单,能有效的分离事件发送方和接收方(也就是解耦的意思),能避免复杂和容易出错的依赖性和生命周期问题。
有三个API
1. eventBus 提供了 on、off 和 trigger 等 API,on 用于监听事件,trigger 用域触发事件
2. eventBus 主要用于对象间通信
3. 使用 eventBus 可以满足最小知识原则,m 和 v 互相不知道对方的细节,但是却可以调用对方的功能
on:监听函数
trigger:触发函数
off:取消监听函数

const e= new EventBus;
e.on();
e.trigger()
e.off();

表驱动编程是做什么的(可以自己查查资料)

表指的是哈希表
表驱动编程可以减少重复代码,只讲重要的信息放在表里,然后利用表来编程

json数据->html结构->css样式->js交互->页面通信
可以把json数据当作参数,html模板当作参数,放入一个约定函数,来生成html结构。
这样可以防御json数据结构的变化,或html结构变化。
也就是说,函数就是映射。
映射就是表,从而函数就是表。

代码流程有顺序,分支,循环。
其中分支和循环,存在映射。其中循环还存在自映射。
既然有映射,那么它就是函数。分支,循环都是函数。、
怎么写出,可扩展,易维护的分支,循环语句呢?
用表。

我们崇尚代码生成代码,函数生成函数,这样就不容易写出出错的代码。
于是,我们用函数生成表,用表生成函数。
参考文章

我是如何理解模块化的

模块化其实很简单,就是将东西分类装在盒子里,然后在盒子外面标上号,用于使用方便
比如有一堆水果,有苹果,橘子,香蕉,火龙果等
有人喜欢吃苹果,需要在这堆水果里面捡苹果吃
有人喜欢香蕉,需要从这堆水果里面捡香蕉吃
但是如果把水果分类放进盒子里并标上名称
想吃的人就可以直接去相应的水果箱子里拿

模块化使代码更清晰,容易读懂。

{{topic.upvote_count || 0}}

什么是MVC,在此之前一点不懂,通过课程我的理解就是:封装
只是将代码分成三块(M,V,C)进行封装。这样理解起来就明白多了

MVC 三个对象分别做什么,给出伪代码示例

M(mode):模型model用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法,会有一个或多个视图监听此模型。一旦模型的数据发生变化,模型将通知有关的视图。

const m={
data:{ }
}

V(view):视图view是它在屏幕上的表示,描绘的是model的当前状态。当模型的数据发生变化,视图相应地得到刷新自己的机会。

const v={
container: ;
html:``;
}

C(controller):控制器,用于存储其他内容,定义用户界面对用户输入的响应方式,起到不同层面间的组织作用,用于控制应用程序的流程,它处理用户的行为和数据model上的改变。

const c={
init:{}
bindEvents:{};
}
```

EventBus 有哪些 API,是做什么用的,给出伪代码示例

在介绍EventBus的API之前先介绍下,什么是EventBus

EventBus能够简化各组件间的通信,让我们的代码书写变得简单,能有效的分离事件发送方和接收方(也就是解耦的意思),能避免复杂和容易出错的依赖性和生命周期问题。
有三个API
1. eventBus 提供了 on、off 和 trigger 等 API,on 用于监听事件,trigger 用域触发事件
2. eventBus 主要用于对象间通信
3. 使用 eventBus 可以满足最小知识原则,m 和 v 互相不知道对方的细节,但是却可以调用对方的功能
on:监听函数
trigger:触发函数
off:取消监听函数

const e= new EventBus;
e.on();
e.trigger()
e.off();

表驱动编程是做什么的(可以自己查查资料)

表指的是哈希表
表驱动编程可以减少重复代码,只讲重要的信息放在表里,然后利用表来编程

json数据->html结构->css样式->js交互->页面通信
可以把json数据当作参数,html模板当作参数,放入一个约定函数,来生成html结构。
这样可以防御json数据结构的变化,或html结构变化。
也就是说,函数就是映射。
映射就是表,从而函数就是表。

代码流程有顺序,分支,循环。
其中分支和循环,存在映射。其中循环还存在自映射。
既然有映射,那么它就是函数。分支,循环都是函数。、
怎么写出,可扩展,易维护的分支,循环语句呢?
用表。

我们崇尚代码生成代码,函数生成函数,这样就不容易写出出错的代码。
于是,我们用函数生成表,用表生成函数。
参考文章

我是如何理解模块化的

模块化其实很简单,就是将东西分类装在盒子里,然后在盒子外面标上号,用于使用方便
比如有一堆水果,有苹果,橘子,香蕉,火龙果等
有人喜欢吃苹果,需要在这堆水果里面捡苹果吃
有人喜欢香蕉,需要从这堆水果里面捡香蕉吃
但是如果把水果分类放进盒子里并标上名称
想吃的人就可以直接去相应的水果箱子里拿

模块化使代码更清晰,容易读懂。

36
回复 编辑