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 相关文章推荐
脚本吧 - 幻宇工作室用到js,超强推荐base.js
Dec 23 Javascript
JavaScript 动态生成方法的例子
Jul 22 Javascript
JavaScript中的一些定位属性[图解]
Jul 14 Javascript
用js小类库获取浏览器的高度和宽度信息
Jan 15 Javascript
js、css、img等浏览器缓存问题的2种解决方案
Oct 23 Javascript
javascript 闭包详解
Feb 15 Javascript
基于jquery实现的仿优酷图片轮播特效代码
Jan 13 Javascript
利用angular.copy取消变量的双向绑定与解析
Nov 25 Javascript
react-router browserHistory刷新页面404问题解决方法
Dec 29 Javascript
JS高阶函数原理与用法实例分析
Jan 15 Javascript
javascript中undefined的本质解析
Jul 31 Javascript
微信小程序canvas开发水果老虎机的思路详解
Feb 07 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
AM/FM收音机的安装与调试
2021/03/02 无线电
PHP 多进程 解决难题
2009/06/22 PHP
PHP CURL模拟GET及POST函数代码
2010/04/25 PHP
如何让thinkphp在模型中自动完成session赋值小教程
2014/09/05 PHP
php 使用mpdf实现指定字段配置字体样式的方法
2019/07/29 PHP
返回页面顶部top按钮通过锚点实现(自写)
2013/08/30 Javascript
使用js画图之正弦曲线
2015/01/12 Javascript
JavaScript是如何实现继承的(六种方式)
2016/03/31 Javascript
javascript 实现文本使用省略号替代(超出固定高度的情况)
2017/02/21 Javascript
详解VUE中v-bind的基本用法
2017/07/13 Javascript
深入浅析ES6 Class 中的 super 关键字
2017/10/20 Javascript
vue中实现图片和文件上传的示例代码
2018/03/16 Javascript
微信小程序实现选项卡效果
2018/11/06 Javascript
Vue将页面导出为图片或者PDF
2020/08/17 Javascript
layer.js open 隐藏滚动条的例子
2019/09/05 Javascript
12 种使用Vue 的最佳做法
2020/03/30 Javascript
JS实现图片幻灯片效果代码实例
2020/05/21 Javascript
Vue+Java+Base64实现条码解析的示例
2020/09/23 Javascript
[10:05]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD 选手采访
2021/03/11 DOTA
python实现BackPropagation算法
2017/12/14 Python
Python爬虫番外篇之Cookie和Session详解
2017/12/27 Python
Python读取MRI并显示为灰度图像实例代码
2018/01/03 Python
Python实现JSON反序列化类对象的示例
2018/01/31 Python
基于pip install django失败时的解决方法
2018/06/12 Python
在Python文件中指定Python解释器的方法
2019/02/18 Python
keras获得某一层或者某层权重的输出实例
2020/01/24 Python
python 插入日期数据到Oracle实例
2020/03/02 Python
Python基础类继承重写实现原理解析
2020/04/03 Python
纯CSS3实现圆角效果(含IE兼容解决方法)
2014/05/07 HTML / CSS
html5 canvas合成海报所遇问题及解决方案总结
2017/08/03 HTML / CSS
早晨薰衣草在线女性精品店:Morning Lavender
2021/01/04 全球购物
绩效管理实施方案
2014/03/19 职场文书
巴西世界杯32强口号
2014/06/05 职场文书
村主任“四风”问题个人整改措施
2014/10/04 职场文书
Mysql基础知识点汇总
2021/05/26 MySQL
Python+DeOldify实现老照片上色功能
2022/06/21 Python