JavaScript Web Applications 读书笔记第一章
1:模型用来存放应用的所有数据对象。比如,可能有一个User模型,用以存放用户的列表,他们的属性以及与模型有关的逻辑,模型只需要包含数据以及直接和这些数据相关的逻辑。任何事件处理代码,视图模板,以及那些和模型无关的逻辑都应该隔离在模型之外。
2:视图层是呈现给用户的,用户与之产生交互。在JavaScript应用中,视图大都是由HTML,CSS和JavaScript模板组成。除了模板中简单的条件语句之外,视图不应当包含任何其他逻辑。视图也应当从其他的应用中解耦出来,它不必要知道模型和控制器中的细节,他们是相互独立的。将逻辑混入视图之中是编程的大计,并不是说不允许包含视觉呈现逻辑,只要这部分逻辑没有定义在视图之内即可。我们可以将视图呈现逻辑归类为 ->视图助手;
反例:
//template.html
<div>
<script>
function formDate(date){...}
</script>
${formDate(this.date)}
</div>
这违反了MVC原则,该脚本应该放入视图助手中;
正例:
//helper.js
var helper = {};
helper.formatDate = function(){....}
//template.html
<div>
${helper.formatDate(this.date)}()
</div>
3:控制器是模型和视图之间的纽带。控制器从视图获得事件和输入,对他们(很可能是模型)进行处理,并相应地更新视图。当页面加载时,控制器会给视图添加事件监听,比如监听表单提交或按钮单击。然后当用户和你的应用产生交互时,控制器中的事件触发器就开始工作了。
不使用类库和框架也能实现控制器:
例如:
var Controller = {}
//使用匿名函数来封装一个作用域
(Controller.users = function($){
var nameClick = function(){
....
};
// 页面加载时绑定事件监听
$(function(){
$("#view .name").click(nameClick)
})
}
){JQuery}

浙公网安备 33010602011771号