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);  

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

相关文章
|
PyTorch 算法框架/工具
【PyTorch】最常见的view的作用
【PyTorch】最常见的view的作用
123 0
|
PyTorch 算法框架/工具 索引
Pytorch函数view、permute、squeeze、usqueeze
Pytorch函数view、permute、squeeze、usqueeze
128 0
|
PyTorch 算法框架/工具
PyTorch reshape和view的区别
PyTorch reshape和view的区别
156 0
|
JavaScript 前端开发 数据库
BackboneJs入门学习[02]---Model初探
BackboneJs入门学习[02]---Model初探
115 0
|
前端开发 C#
WPF MVVM 架构 Step By Step(6)(把actions从view model解耦)
原文:WPF MVVM 架构 Step By Step(6)(把actions从view model解耦)   到现在为止,我们创建了一个简单的MVVM的例子,包含了实现了的属性和命令。我们现在有这样一个包含了例如textbox类似的输入元素的视图,textbox用绑定来和view model联系,像点击button这样的行为用命令来联系。
1558 0