一、应用场景
通过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. MySql获取记录的名次

    在oracle中有rownum之类的东西表示记录的名次,那么在MySql中怎么获取名次呢? as rank ) B 获取的rank就是名次了 user_id rank 134762    122139 ...

  2. Spring IOC 少

    控制反转好处 IOC:控制反转也叫依赖注入,IOC利用java反射机制,AOP利用代理模式.所谓控制反转是指,本来被调用者的实例是有调用者来创建的,这样的缺点是耦合性太强,IOC则是统一交给sprin ...

  3. c# 创建缩略图

    /// <summary> /// 创建缩略图 /// </summary> /// <param name="srcFileName">< ...

  4. 7、scala面向对象-继承

    一.继承 1.extends Scala中,让子类继承父类,与Java一样,也是使用extends关键字 继承就代表,子类可以从父类继承父类的field和method:然后子类可以在自己内部放入父类所 ...

  5. 安装json format插件

    更多工具->扩展->搜索:son format插件 这样得到的json数据以一种美观的样式显示.

  6. 多值cookie

  7. 测试merge效率

    测试说明: MERGE是oracle提供的一种特殊的sql语法,非常适用于数据同步场景,即: (把A表数据插到B表,如果B表存在相同主键的记录则使用A表数据对B表进行更新) 数据同步的常规做法是先尝试 ...

  8. webpack4下import()模块按需加载,打包按需切割模块,减少包体积,加快首页请求速度

    一:背景 因为项目功能越加越多,打包后的体积越来越大,导致首页展示的时候速度比较慢,因为要等压缩的js的包加载完毕. 首页展示的时候只需要对应的js,并不需要全部的js模块,所以这里就可以用按需加载, ...

  9. ARC085E(最小割规划【最大流】,Dinic当前弧优化)

    #include<bits/stdc++.h>using namespace std;typedef long long ll;const ll inf=0x3f3f3f3f;int cn ...

  10. hdu2586(lca模板 / tarjan离线 + RMQ在线)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2586 题意: 给出一棵 n 个节点的带边权的树, 有 m 个形如 x y 的询问, 要求输出所有 x, ...