一、应用场景
通过View的类注释,可知,Backbone.view是一个JS构造函数,与DOM中的某一块UI相对应,通过注册模型层数据的监听,可实现视图的自动渲染。
Backbone.View模块也扩展了Events模块,所以,View实例也继承了事件:on、trigger等。但是我们在实际应用中通常是多个view实例共享一个model实例,多个view实例充当观察者的角色,监听model的数据变化,驱动界面的刷新。很少会为view实例绑定自定义事件。
二、构造函数。
构造函数主要完成以下工作:
(1)、为每一个view实例对象创建属性实例cid,唯一标识该对象。
(2)、调用_configure方法扩展view实例对象的属性
(3)、调用_ensureElement方法为实例对象创建实例属性:el、$el 分别表示:dom对象与jquery对象
(4)、调用你自定义的initialize方法,所以创建View实例对象与创建Mode实例对象一样,自定义的initialize方法无需手动调用,框架会自动调用帮你完成初始化工作。
(5)、调用delegateEvents方法,绑定你扩展的的事件。
 
三、代码示例
M139.View.ViewBase 继承了Backbone.View
我调用extend方法扩展M139.View.ViewBase
我扩展的这些属性将会添加到ColumnList实例对象的原型上。同时,由于我的扩展对象包含属性el,events,initialize方法,当我new一个ColumnList实例时,框架会帮我做以下事情:
(1)、在实例对象上创建属性el、$el
(2)、调用jquery的on方法绑定指定事件
(3)、调用initialize方法执行初始化操作
执行以下代码:
打印结果为:
并且,我的扩展对象上的所有属性都被添加到实例对象的原型上了,所有实例共享。

View模块的更多相关文章

  1. hdwik中view模块的应用

    概述        MVC中的视图view 主要负责页面显示部分,所有的页面显示全部在此实现,视图对整个页面负责,它通过control的调用来显示页面和数据.视图(view)类template.cla ...

  2. TypeError: view must be a callable or a list/tuple in the case of include()

    原文连接: http://www.imooc.com/qadetail/98920 我是这么写的就好了 from django.conf.urls import url from django.con ...

  3. .3-浅析express源码之applicaiton模块(2)-app.render

    这个模块还漏了一个稍微复杂点的API,就是app.render,首先看官网的定义: app.render(view, [locals], callback) view为对应的文件名,locals为一个 ...

  4. Android之三种网络请求解析数据(最佳案例)

    AsyncTask解析数据 AsyncTask主要用来更新UI线程,比较耗时的操作可以在AsyncTask中使用. AsyncTask是个抽象类,使用时需要继承这个类,然后调用execute()方法. ...

  5. 数百个 HTML5 例子学习 HT 图形组件 – 拓扑图篇

    HT 是啥:Everything you need to create cutting-edge 2D and 3D visualization. 这口号是当年心目中的产品方向,接着就朝这个方向慢慢打 ...

  6. ThinkPhp 3.2 常见问题与注意事项

    1 命名空间声明必须写在脚本的最前面 如果运行PHP脚本后出现如下错误: Namespace declaration statement has to be the very first statem ...

  7. springMVC 的工作原理和机制

    工作原理上面的是springMVC的工作原理图: 1.客户端发出一个http请求给web服务器,web服务器对http请求进行解析,如果匹配DispatcherServlet的请求映射路径(在web. ...

  8. OneThink开发框架

    OneThink是一个开源的内容管理框架,基于最新的ThinkPHP3.2版本开发,提供更方便.更安全的WEB应用开发体验,采用了全新的架构设计和命名空间机制,融合了模块化.驱动化和插件化的设计理念于 ...

  9. Thinkphp3.2----------------Thinkphp3.2的目录结构介绍

    ThinkPHP框架目录结构\index.php         入口文件\Application     应用目录\Public         资源文件目录\ThinkPHP         框架 ...

随机推荐

  1. Linux Screen超简明教程

    1.安装Screen 大多数情况下,系统已经安装好了screen.如果没有,可以用下面的命令来安装: CentOS系统中执行:yum install screen Debian/Ubuntu系统执行: ...

  2. C++中对象的常引用

    直接传递对象名 用对象名做函数参数时,在函数调用时将建立一个新的对象,它是形参对象的拷贝. ================下面给出一个直接传递对象名的例子程序1.1================= ...

  3. Tomcat+Nginx实现动静分离

    Tomcat是我们经常用的服务器,轻便快捷,但是数据量大的时候,会影响访问.响应速度,这时Nginx就出现了. Nginx可做反向代理.负载均衡.动态与静态资源的分离的工作,这里我们就用它来做动静分离 ...

  4. 阶段2-新手上路\项目-移动物体监控系统\Sprint4-嵌入式web服务器开发\第3课-CGI程序开发

    实现CGI程序显示一幅图片最核心的功能 把上一节课编写好的led.c程序拷贝过来,并重新命名为image.c 把led的某些部分删除,后如下 那么如何显示一幅图片呢,百度(搜索在html里面去插入图片 ...

  5. 工作随记--div最小高度

    给div添加最小高度 min-height:1000px;//IE7\FF height:100%;//IE6\IE7\FF 这个很重要,IE6定死高度后,需要再加上这条,才能自动延伸. _heigh ...

  6. 解决Navicat 无法连接mysql8.0

    必须执行下面两个步骤,缺一不可. 一.        mysql8.0加密方式与mysql5几加密方式不同,需要先更改加密方式. 更改加密方式 ALTERUSER 'root'@'localhost' ...

  7. HTTP协议格式及基础

    HTTP请求数据: HTTP请求信息由3部分组成: ① 请求方法 URI 协议/版本 ② 请求头(Request Header) ③     请求正文 HTTP 请求 数据 例子举例: GET/sam ...

  8. [WIP]php 基本语法

    创建: 2019/06/14 https://www.php.net/manual/zh/langref.php php标记   当解析一个文件时,PHP 会寻找起始和结束标记,也就是 <?ph ...

  9. vue中通过cross-env插件配置三种环境(开发,测试,生产)打包,不用切换api

    1. 话不多说,第一步就是安装必要的插件 npm install cross-env --save 2.修改config里面的参数,这里只展示一个test,其他类似 3.修改package.json ...

  10. 审美赛_(java)实现

    问题描述 <审美的历程>课上有n位学生,帅老师展示了m幅画,其中有些是梵高的作品,另外的都出自五岁小朋友之手.老师请同学们分辨哪些画的作者是梵高,但是老师自己并没有答案,因为这些画看上去都 ...