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监测ActiveX控件是否已经安装过的代码
Sep 02 Javascript
JS获取浏览器版本及名称实现函数
Apr 02 Javascript
javascript对象的使用和属性操作示例详解
Mar 02 Javascript
jQuery实现判断滚动条到底部
Jun 23 Javascript
Bootstrap每天必学之模态框(Modal)插件
Apr 26 Javascript
jquery.multiselect多选下拉框实现代码
Nov 11 Javascript
jquery表单验证插件validation使用方法详解
Jan 20 Javascript
vue引入swiper插件的使用实例
Jul 19 Javascript
浅谈vue+webpack项目调试方法步骤
Sep 11 Javascript
JavaScript设计模式之享元模式实例详解
Jan 17 Javascript
PWA介绍及快速上手搭建一个PWA应用的方法
Jan 27 Javascript
Vite + React从零开始搭建一个开源组件库
Jun 25 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中$this和$that指针使用实例
2015/01/06 PHP
基于jQuery的固定表格头部的代码(IE6,7,8测试通过)
2010/05/18 Javascript
ext中store.load跟store.reload的区别示例介绍
2014/06/17 Javascript
javascript显式类型转换实例分析
2015/04/25 Javascript
详解jquery事件delegate()的使用方法
2016/01/25 Javascript
学JavaScript七大注意事项【必看】
2016/05/04 Javascript
JavaScript随机打乱数组顺序之随机洗牌算法
2016/08/02 Javascript
JavaScript实现的CRC32函数示例
2016/11/23 Javascript
jQuery实现Select下拉列表进行状态选择功能
2017/03/30 jQuery
js实现移动端轮播图效果
2020/12/09 Javascript
JS 实现缓存算法的示例(FIFO/LRU)
2018/03/20 Javascript
Nodejs 和 Electron ubuntu下快速安装过程
2018/05/04 NodeJs
5分钟快速掌握JS中var、let和const的异同
2018/09/19 Javascript
redux处理异步action解决方案
2020/03/22 Javascript
react 不用插件实现数字滚动的效果示例
2020/04/14 Javascript
详解vue-cli项目在IE浏览器打开报错解决方法
2020/12/10 Vue.js
[01:37]TI4西雅图DOTA2前线报道 VG拿下首胜教练357给出获胜秘诀
2014/07/10 DOTA
在Linux中通过Python脚本访问mdb数据库的方法
2015/05/06 Python
python抓取百度首页的方法
2015/05/19 Python
CentOS 6.X系统下升级Python2.6到Python2.7 的方法
2016/10/12 Python
python中将\\uxxxx转换为Unicode字符串的方法
2018/09/06 Python
python如何获取当前文件夹下所有文件名详解
2019/01/25 Python
python处理“
2019/06/10 Python
Python 实例方法、类方法、静态方法的区别与作用
2019/08/14 Python
PYTHON实现SIGN签名的过程解析
2019/10/28 Python
在keras中获取某一层上的feature map实例
2020/01/24 Python
python 视频下载神器(you-get)的具体使用
2021/01/06 Python
Philosophy美国官网:美国美容品牌
2016/08/15 全球购物
打印机墨盒:123Inkjets
2017/02/16 全球购物
Tea Collection官网:一家位于旧金山的童装公司
2020/08/07 全球购物
J2EE系统只能是基于web
2015/09/08 面试题
会计出纳岗位职责
2013/12/25 职场文书
个人求职信范文分享
2014/01/06 职场文书
物流专员岗位职责
2014/02/17 职场文书
护校行动方案
2014/05/31 职场文书
湘江北去观后感
2015/06/15 职场文书