[关闭]
@52fhy 2016-01-22T16:23:02.000000Z 字数 1754 阅读 386

01-backbone初体验

backbone


backbone.js是一个web端javascript的MVC框架,算是轻量级的框架。

它能让你像写Java(后端)代码组织js代码,定义类,类的属性以及方法。更重要的是它能够优雅的把原本无逻辑的javascript代码进行组织,并且提供数据和逻辑相互分离的方法,减少代码开发过程中的数据和逻辑混乱。

在Backbonejs有几个重要的概念,先介绍一下:ModelCollectionViewRouter。其中Model是根据现实数据建立的抽象,比如人(People);Collection是Model的一个集合,比如一群人;View是对Model和Collection中数据的展示,把数据渲染(Render)到页面上;Router是对路由的处理,就像传统网站通过url现实不同的页面,在单页面应用(SPA)中通过Router来控制前面说的View的展示。

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>the5fire.com-backbone.js-Hello World</title>
  6. </head>
  7. <body>
  8. <button id="check">新手报到</button>
  9. <ul id="world-list">
  10. </ul>
  11. <a href="http://www.the5fire.com">更多教程</a>
  12. <script src="http://the5fireblog.b0.upaiyun.com/staticfile/jquery-1.10.2.js"></script>
  13. <script src="http://the5fireblog.b0.upaiyun.com/staticfile/underscore.js"></script>
  14. <script src="http://the5fireblog.b0.upaiyun.com/staticfile/backbone.js"></script>
  15. <script>
  16. (function ($) {
  17. World = Backbone.Model.extend({
  18. //创建一个World的对象,拥有name属性
  19. name: null
  20. });
  21. Worlds = Backbone.Collection.extend({
  22. //World对象的集合
  23. initialize: function (models, options) {
  24. this.bind("add", options.view.addOneWorld);
  25. }
  26. });
  27. AppView = Backbone.View.extend({
  28. el: $("body"),
  29. initialize: function () {
  30. //构造函数,实例化一个World集合类
  31. //并且以字典方式传入AppView的对象
  32. this.worlds = new Worlds(null, { view : this })
  33. },
  34. events: {
  35. //事件绑定,绑定Dom中id为check的元素
  36. "click #check": "checkIn",
  37. },
  38. checkIn: function () {
  39. var world_name = prompt("请问,您是哪星人?");
  40. if(world_name == "") world_name = '未知';
  41. var world = new World({ name: world_name });
  42. this.worlds.add(world);
  43. },
  44. addOneWorld: function(model) {
  45. $("#world-list").append("<li>这里是来自 <b>" + model.get('name') + "</b> 星球的问候:hello world!</li>");
  46. }
  47. });
  48. //实例化AppView
  49. var appview = new AppView;
  50. })(jQuery);
  51. </script>
  52. </body>
  53. </html>

参考:

1、the5fire/backbonejs-learning-note
https://github.com/the5fire/backbonejs-learning-note
2、Backbone.js API中文文档
http://www.css88.com/doc/backbone/

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注