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}

    

posted @ 2013-05-30 12:36  that  阅读(151)  评论(0)    收藏  举报