Backbone View入门

Backbone 是一个 JavaScript 框架,可用于创建模型-视图-控制器 (model-view-controller, MVC) 类应用程序和单页界面。它试图让 JavaScript 应用程序更清晰结构化,所涉及到的概念有  View, Event, Model, Collection 和 Router,所以新手刚开始接触 Backbone 反而会显得零乱了。再加上网上找来的一些起步教程一上来就把 Event, Model, Collection 或是 Router 揽上了。其实新手最想要一个最简单的真相,因此第一个例子只需用到 View,其他的玩艺暂且搁置。

Backbone 强依赖于 Underscore,jQuery 是可选的,不过为操作 DOM 方便一般都会引用到 jQuery。

最简单的例子,分两步走:

1. Backbone.View.extend(obj) 创建一个 View 类型
2. 创建上一步得到的 View 的实例,实例化时将会调用前一步 obj.initialize() 方法

Java代码   收藏代码
  1. <!DOCTYPE html>  
  2. <html>  
  3.      <head>  
  4.          <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>  
  5.          <script src="http://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.5.2/underscore-min.js"></script>  
  6.          <script src="http://cdnjs.cloudflare.com/ajax/libs/backbone.js/1.0.0/backbone-min.js"></script>  
  7.      </head>  
  8.      <body>  
  9.          <div id="container">Loading...</div>  
  10.      </body>  
  11.  </html>  
  12.     
  13.  <script>  
  14.      var AppView = Backbone.View.extend({  
  15.          el: '#container',  
  16.          initialize: function(options) {  
  17.                  this.render();  
  18.          },  
  19.          render: function() {  
  20.                  this.$el.html("Hello World");  
  21.          }  
  22.      });  
  23.     
  24.     //上面等于是创建了 AppView 类,还需实例化才行  
  25.     setTimeout(function(){  
  26.       var appView = new AppView();  
  27.     }, 1000);  
  28.     
  29.  </script>  

运行上面的代码,会发现 Loading... 在一秒后被替换成了 Hello World。走通。

 

有了上头的真切体验,我们才可以再进一步,使用行间模板和页面中声明的模板,模板就会触碰到值的填充,至此隐约也会感觉到 Model 在向我们招手了。

我们在构造 AppView 时可以传入以上的属性,比如传入 el 属性,就写成

Java代码   收藏代码
  1. var appView = new AppView({el: $('#container')});  

 这样前面的 AppView 内就可以不用声明 el 属性了。你也可以同样的方式传入 model, id 等属性,属性声明在 View 的定义比较清晰,倘若要 View 的公用性就可在构造时传入属性,这是后话。

 

Backbone 的对象在初始化之后首先被执行的是 initialize 方法,初始化方法中可能要调用父类的初始化,则在  initialize 方法中头行加上

Java代码   收藏代码
  1. this.constructor.__super__.initialize.apply(this);  

这在要建立自己更深层次的类关系时会有用到,特别是非默认构造。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值