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 相关文章推荐
静态的动态续篇之来点XML
Aug 15 Javascript
Jquery Ajax学习实例6 向WebService发出请求,返回DataSet(XML) 异步调用
Mar 18 Javascript
关于JS字符串函数String.replace()
Apr 07 Javascript
jQuery文本框(input textare)事件绑定方法教程
Apr 24 Javascript
解析使用JS 清空File控件的路径值
Jul 08 Javascript
Javascript仿新浪游戏频道鼠标悬停显示子菜单效果
Aug 21 Javascript
Bootstrap 3浏览器兼容性问题及解决方案
Apr 11 Javascript
关于axios如何全局注册浅析
Jan 14 Javascript
Angularjs之如何在跨域请求中传输Cookie的方法
Jun 01 Javascript
中高级前端必须了解的JS中的内存管理(推荐)
Jul 04 Javascript
vue实现浏览器全屏展示功能
Nov 27 Javascript
解决vue-photo-preview 异步图片放大失效的问题
Jul 29 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多图上传小程序代码
2011/07/17 PHP
PHP几个数学计算的内部函数学习整理
2011/08/06 PHP
php+mysqli实现批量替换数据库表前缀的方法
2014/12/29 PHP
php封装单文件上传到数据库(路径)
2017/10/15 PHP
阿里云的WindowsServer2016上部署php+apache
2018/07/17 PHP
js 3秒后跳转页面的实现代码
2014/03/10 Javascript
常用的jquery模板插件——jQuery Boilerplate介绍
2014/09/23 Javascript
jQuery检测某个元素是否存在代码分享
2015/07/09 Javascript
JavaScript检查子字符串是否在字符串中的方法
2016/02/03 Javascript
js实现异步循环实现代码
2016/02/16 Javascript
微信小程序 欢迎页面的制作(源码下载)
2017/01/09 Javascript
node.js中express-session配置项详解
2017/05/31 Javascript
在 Angular 中使用Chart.js 和 ng2-charts的示例代码
2017/08/17 Javascript
用Vue写一个分页器的示例代码
2018/04/22 Javascript
使用JavaScript解析URL的方法示例
2019/03/01 Javascript
vue组件传值的实现方式小结【三种方式】
2020/02/05 Javascript
element中el-container容器与div布局区分详解
2020/05/13 Javascript
图解JS原型和原型链实现原理
2020/09/15 Javascript
vue3.0 自适应不同分辨率电脑的操作
2021/02/06 Vue.js
[42:48]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第二场 12.11
2020/12/16 DOTA
python检测lvs real server状态
2014/01/22 Python
python 用lambda函数替换for循环的方法
2018/06/09 Python
python实现飞机大战游戏
2020/10/26 Python
PyQT5 QTableView显示绑定数据的实例详解
2019/06/25 Python
自适应线性神经网络Adaline的python实现详解
2019/09/30 Python
pytorch中index_select()的用法详解
2021/01/06 Python
HTML5 canvas画图并保存成图片的jcanvas插件
2014/01/17 HTML / CSS
国外平面设计第一市场:99designs
2016/10/25 全球购物
中专生自我鉴定范文
2013/12/19 职场文书
倡议书格式
2014/08/30 职场文书
党支部三会一课计划
2014/09/24 职场文书
乡镇领导班子四风对照检查材料
2014/09/27 职场文书
2015年监理个人工作总结
2015/05/23 职场文书
培训感想范文
2015/08/07 职场文书
教你做个可爱的css滑动导航条
2021/06/15 HTML / CSS
使用 CSS 构建强大且酷炫的粒子动画效果
2022/08/14 HTML / CSS