JavaScript的Backbone.js框架环境搭建及Hellow world示例


Posted in Javascript onMay 07, 2016

环境准备
在正式学习Backbone之前,你需要准备一些东西:
首先,你需要获取Backbone框架源文件:http://documentcloud.github.com/backbone/
Backbone依赖于Underscore框架的基础方法,因此,你同时需要下载Underscore框架的源文件:http://documentcloud.github.com/underscore/
在Backbone中,对DOM和事件的操作依赖于第三方库(如jQuery或Zepto),你只需要选择其中一个下载:
jQuery:http://jquery.com/
Zepto:http://zeptojs.com/
看起来好像挺麻烦的样子,但Backbone的目的是在于使用简单的框架来构建复杂的应用,因此麻烦并不表示它很复杂。
你可以新建一个HTML页面,并将这些框架引入进来,就像这样:

<script type="text/javascript" src="jquery/jquery-1.8.2.min.js"></script> 
<script type="text/javascript" src="underscore/underscore-min.js"></script> 
<script type="text/javascript" src="backbone/backbone-min.js"></script>

至此,你已经准备好了运行Backbone必须的环境。

Hellow World
先来说一下这个helloworld的功能: 在页面上有一个报道的按钮,点击弹出输入框,输入内容,确认,最后内容会加到页面上。页面图如下:

JavaScript的Backbone.js框架环境搭建及Hellow world示例

下面来看代码:

<!DOCTYPE html>
<html>
<head>
    <title>the5fire.com-backbone.js-Hello World</title>
</head>
<body>
<button id="check">报到</button>
<ul id="world-list">
</ul>
<a href="http://www.the5fire.com">更多教程</a>
</body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script src="http://documentcloud.github.com/underscore/underscore-min.js"></script>
<script src="http://documentcloud.github.com/backbone/backbone-min.js"></script>
<script>
(function ($) {
    World = Backbone.Model.extend({
        //创建一个World的对象,拥有name属性
        name: null
    });

    Worlds = Backbone.Collection.extend({
        //World对象的集合
        initialize: function (models, options) {
            this.bind("add", options.view.addOneWorld);
        }
    });

    AppView = Backbone.View.extend({
        el: $("body"),
        initialize: function () {
            //构造函数,实例化一个World集合类,并且以字典方式传入AppView的对象
            this.worlds = new Worlds(null, { view : this })
        },
        events: {
            "click #check": "checkIn",  //事件绑定,绑定Dom中id为check的元素
        },
        checkIn: function () {
            var world_name = prompt("请问,您是哪星人?");
            if(world_name == "") world_name = '未知';
            var world = new World({ name: world_name });
            this.worlds.add(world);
        },
        addOneWorld: function(model) {
            $("#world-list").append("<li>这里是来自 <b>" + model.get('name') + "</b> 星球的问候:hello world!</li>");
        }
    });
    //实例化AppView
    var appview = new AppView;
})(jQuery);
</script>
</html>

我认为代码是直观的,这里面涉及到backbone的三个部分,view、model、collection,以后都会提到,这里只要了解,model代表一个数据模型,collection是模型的一个集合,而view是用来处理页面以及简单的页面逻辑的。

Javascript 相关文章推荐
理解JavaScript变量作用域更轻松
Oct 25 Javascript
JS在IE和FireFox之间常用函数的区别小结
Mar 12 Javascript
基于jquery的固定表头和列头的代码
May 03 Javascript
javascript检测浏览器的缩放状态实现代码
Sep 28 Javascript
node.js开机自启动脚本文件
Dec 24 Javascript
jQuery插件slick实现响应式移动端幻灯片图片切换特效
Apr 12 Javascript
js严格模式总结(分享)
Aug 22 Javascript
动态JavaScript所造成一些你不知道的危害
Sep 25 Javascript
微信小程序中实现一对多发消息详解及实例代码
Feb 14 Javascript
Javascript中prototype与__proto__的关系详解
Mar 11 Javascript
vue弹出框组件封装实例代码
Oct 31 Javascript
js中apply和call的理解与使用方法
Nov 27 Javascript
深入解析Backbone.js框架的依赖库Underscore.js的作用
May 07 #Javascript
JavaScript的Backbone.js框架入门学习指引
May 07 #Javascript
JavaScript数组方法总结分析
May 06 #Javascript
JS平滑无缝滚动效果的实现代码
May 06 #Javascript
使用AJAX实现Web页面进度条的实例分享
May 06 #Javascript
JavaScript中的原型继承基础学习教程
May 06 #Javascript
jquery实现下拉框功能效果【实例代码】
May 06 #Javascript
You might like
PHP利用COM对象访问SQLServer、Access
2006/10/09 PHP
PHP执行批量mysql语句的解决方法
2013/05/02 PHP
php实现购物车功能(以大苹果购物网为例)
2017/03/09 PHP
PHP SFTP实现上传下载功能
2017/07/26 PHP
PHP性能分析工具xhprof的安装使用与注意事项
2017/12/19 PHP
js 弹出菜单/窗口效果
2011/10/30 Javascript
jquery实现图片左右间隔滚动特效(可自动播放)
2013/05/08 Javascript
js 获取input点选按钮的值的方法
2014/04/14 Javascript
jQuery增加自定义函数的方法
2015/07/18 Javascript
js实现文字闪烁特效的方法
2015/12/17 Javascript
javascript瀑布流式图片懒加载实例解析与优化
2016/02/23 Javascript
javascript实现滚动效果的数字时钟实例
2016/07/21 Javascript
基于BootStrap实现局部刷新分页实例代码
2016/08/08 Javascript
jquery配合.NET实现点击指定绑定数据并且能够一键下载
2016/10/28 Javascript
jquery 手势密码插件
2017/03/17 Javascript
Agularjs妙用双向数据绑定实现手风琴效果
2017/05/26 Javascript
vue项目部署上线遇到的问题及解决方法
2018/06/10 Javascript
[16:01]夜魇凡尔赛茶话会 第二期01:你比划我猜
2021/03/11 DOTA
Python os模块中的isfile()和isdir()函数均返回false问题解决方法
2015/02/04 Python
Python Tkinter实现简易计算器功能
2018/01/30 Python
基于python3实现socket文件传输和校验
2018/07/28 Python
python实现坦克大战游戏 附详细注释
2020/03/27 Python
Windows下pycharm创建Django 项目(虚拟环境)过程解析
2019/09/16 Python
Python 、Pycharm、Anaconda三者的区别与联系、安装过程及注意事项
2019/10/11 Python
python读取多层嵌套文件夹中的文件实例
2020/02/27 Python
利用python绘制数据曲线图的实现
2020/04/09 Python
如何快速一次性卸载所有python包(第三方库)呢
2020/10/20 Python
澳大利亚墨水站Ink Station:墨水和碳粉打印机墨盒
2019/03/24 全球购物
请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1
2015/07/16 面试题
英语系本科生求职信范文
2013/12/18 职场文书
数控专业大学毕业生职业规划范文
2014/02/06 职场文书
环保公益广告语
2014/03/13 职场文书
村主任个人对照检查材料
2014/10/01 职场文书
幼师大班个人总结
2015/02/13 职场文书
2015年招商引资工作总结
2015/04/25 职场文书
廉政承诺书2015
2015/04/28 职场文书