博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Backbone.js学习笔记 Hello World!
阅读量:6500 次
发布时间:2019-06-24

本文共 1802 字,大约阅读时间需要 6 分钟。

使用Backbone.js 和 MVC 架构创建一个典型的Hello world项目。虽然是“杀鸡用牛刀了”,毕竟是我第一次使用Backbone.js

依赖

  • jQuery 1.9.1
  • Undersore.js 1.5.0
  • Backbone.js

开始

backbone日常练习

在 extend 调用里设置指定的 routes 属性:

var router = Backbone.Router.extend({    routes: {        ' ': 'home'    }});

Backbone中routes 属性需要下面的格式: ‘path/:param’: 'action',它实现了是当URl是 filename#path/param时, 触发名为action 的函数(在Router 对象里定义)。然后添加一个 home 路由:

var router = Backbone.Router.extend({    routes: {        ' ': 'home'    }});

现在我们需要添加一个 home 函数:

var router = Backbone.Router.extend({    routes: {        ' ': 'home'    }    ‘home’: function (){        // 渲染 HTML    }});

添加创建和渲染 View 的逻辑。现在先定义 homeView:

var homeView = Backbone.View.extend({    });

然后给 homeView 添加属性

var homeView = Backbone.View.extend({        el: 'body',    teplate: _.template('Hello world!')});

el 是一个保存 jQuery 选择器的字符串,也可以使用'.'作为类和'#'作为ID名。template属性被赋值给传入 Hello World 的 Underscore.js 函数 template 运行的结果。

渲染 homeView, 我们使用 this.$el, 这是一个 jQuery 对象,它指向 el 的属性,使用 jQuery.html() 函数使用 this.template() 的结果替换 HTML。 下面是完整的 homeView 代码:

var homeView = Backbone.View.extend({        el: 'body',        template: _.template('Hello World'),        render: function (){            this.$el.html(this.template({}));        }    });

现在我们返回到 router,添加两行到 home 函数:

var router = Backbone.Router.extend({        routes: {            '': 'home'        },        initialize: function (){            // 一些在对象初始化的时候执行的代码        },        home: function (){            this.homeView = new homeView;            this.homeView.render();        }    });

第一行创建了一个 homeView 对象并且赋值给 router 的 homeView 属性。第二行调用 homeView 对象的 render() 方法,触发 Hello World! 输出。

最后,启动整体 Backbone 应用,为了保证 Dom 完全加载, 用 $(function (){}) 包装器调用 new router:

var app;$(function (){    app = new router;    Backbone.history.start();});

完整DEMO

backbone日常练习

转载地址:http://hptyo.baihongyu.com/

你可能感兴趣的文章
演示:使用协议分析器取证IPv6的报文结构
查看>>
oracle 11gr2 rac中的4种IP解说
查看>>
为什么你找不到工作?
查看>>
20 个免费的 jQuery 的工具提示插件:
查看>>
Windows录音API学习笔记(转)
查看>>
只有在北方的中国帝国能力享受免费的商业课程:财富规划法与愿景
查看>>
食谱API自由和开放接口-为了发展自己的健康厨房APP应用
查看>>
汇编语言的应用
查看>>
一句话的设计模式(收藏)
查看>>
device platform 相应的表
查看>>
php des 加密解密实例
查看>>
【Mac】Mac键盘实现Home, End, Page UP, Page DOWN
查看>>
14、Cocos2dx 3.0三,找一个小游戏开发Scene and Layer:游戏梦想
查看>>
cocos2d-x3.x屏蔽遮罩层屏蔽触摸button
查看>>
实战使用Axure设计App,使用WebStorm开发(1) – 用Axure描述需求
查看>>
安德鲁斯----多媒体编程
查看>>
ZOJ 1203 Swordfish 旗鱼 最小生成树,Kruskal算法
查看>>
swift版的元组
查看>>
磁盘管理 之 parted命令添加swap,文件系统
查看>>
什么是redis,redis能做什么,redis应用场景
查看>>