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实现浏览器菜单命令
Sep 05 Javascript
定时器(setTimeout/setInterval)调用带参函数失效解决方法
Mar 26 Javascript
常用jQuery选择器总结
Jul 11 Javascript
JavaScript通过setTimeout实时显示当前时间的方法
Apr 16 Javascript
vue从使用到源码实现教程详解
Sep 19 Javascript
Ionic3 UI组件之Gallery Modal详解
Jun 07 Javascript
微信小程序中使用Promise进行异步流程处理的实例详解
Aug 17 Javascript
JS获取浏览器地址栏的多个参数值的任意值实例代码
Jul 24 Javascript
深入理解Vue 的钩子函数
Sep 05 Javascript
React手稿之 React-Saga的详解
Nov 12 Javascript
ng-zorro-antd 入门初体验
Dec 03 Javascript
前端vue如何使用高德地图
Nov 05 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中$_GET与$_POST过滤sql注入的方法
2014/11/03 PHP
php微信公众平台开发之获取用户基本信息
2015/08/17 PHP
PHP 常用时间函数资料整理
2016/10/22 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
PHP查找一列有序数组是否包含某值的方法
2020/02/07 PHP
jQuery之浮动窗口实现代码(两种方法)
2010/09/08 Javascript
jquery调用asp.net 页面后台的实现代码
2011/04/27 Javascript
jQuery中json对象的复制方式介绍(数组及对象)
2013/06/08 Javascript
Jquery实现图片放大镜效果的思路及代码(自写)
2013/10/18 Javascript
节点的插入之append()和appendTo()的用法介绍
2014/01/13 Javascript
容易造成JavaScript内存泄露几个方面
2014/09/04 Javascript
js用Date对象的setDate()函数对日期进行加减操作
2014/09/18 Javascript
NodeJS学习笔记之FS文件模块
2015/01/13 NodeJs
使用JavaScript+canvas实现图片裁剪
2015/01/30 Javascript
JavaScript入门教程之引用类型
2016/05/04 Javascript
scroll事件实现监控滚动条并分页显示(zepto.js)
2016/12/18 Javascript
JS中正则表达式全局匹配模式 /g用法详解
2017/04/01 Javascript
浅谈Angular文字折叠展开组件的原理分析
2017/11/24 Javascript
JavaScript数据结构之栈实例用法
2019/01/18 Javascript
[05:45]Ti4观战指南(下)
2014/07/07 DOTA
mac系统安装Python3初体验
2018/01/02 Python
tf.truncated_normal与tf.random_normal的详细用法
2018/03/05 Python
django小技巧之html模板中调用对象属性或对象的方法
2018/11/30 Python
Python多线程多进程实例对比解析
2020/03/12 Python
html5跨域通讯之postMessage的用法总结
2013/11/07 HTML / CSS
英国品牌男装折扣网站:Brown Bag
2018/03/08 全球购物
澳大利亚在线购买葡萄酒:The Wine Collective
2020/02/20 全球购物
成都思必达公司C#程序员招聘面试题
2013/06/26 面试题
三八妇女节活动主持词
2014/03/17 职场文书
食品业务员岗位职责
2014/03/18 职场文书
师德建设实施方案
2014/03/21 职场文书
2014年教育培训工作总结
2014/12/08 职场文书
交通事故代理词范文
2015/05/23 职场文书
教师师德承诺书2016
2016/03/25 职场文书
Python 高级库15 个让新手爱不释手(推荐)
2021/05/15 Python
MySQL数据库之内置函数和自定义函数 function
2022/06/16 MySQL