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 相关文章推荐
关于锚点跳转及jQuery下相关操作与插件
Oct 01 Javascript
jquery checkbox实现单选小例
Nov 27 Javascript
jQuery处理图片加载失败的常用方法
Jun 08 Javascript
JavaScript包装对象使用详解
Jul 09 Javascript
基于jQuery和hwSlider实现内容左右滑动切换效果附源码下载(一)
Jun 22 Javascript
获取JS中网页各种高宽与位置的方法总结
Jul 27 Javascript
浅谈React Native Flexbox布局(小结)
Jan 08 Javascript
微信小程序WebSocket实现聊天对话功能
Jul 06 Javascript
小程序怎样让wx.navigateBack更好用的方法实现
Nov 01 Javascript
js构造函数constructor和原型prototype原理与用法实例分析
Mar 02 Javascript
用JS创建一个录屏功能
Nov 11 Javascript
使用vue判断当前环境是安卓还是IOS
Apr 12 Vue.js
深入解析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中的CMS的涵义
2007/03/11 PHP
PHP反射机制用法实例
2014/08/28 PHP
PHP 极验验证码实例讲解
2016/09/29 PHP
详解PHP实现支付宝小程序用户授权的工具类
2018/12/25 PHP
利用jQuery操作对象数组的实现代码
2011/04/27 Javascript
JS获取图片实际宽高及根据图片大小进行自适应
2013/08/11 Javascript
jquery实现的导航固定效果
2014/04/28 Javascript
jQuery学习笔记之 Ajax操作篇(二) - 数据传递
2014/06/23 Javascript
node.js中的fs.lchmodSync方法使用说明
2014/12/16 Javascript
文本框只能输入数字的实现方法(兼容IE火狐)
2016/06/25 Javascript
jQuery设置Easyui校验规则(推荐)
2016/11/21 Javascript
jQuery图片轮播(二)利用构造函数和原型创建对象以实现继承
2016/12/06 Javascript
详解支持Angular 2的表格控件
2017/01/19 Javascript
vue插件vue-resource的使用笔记(小结)
2017/08/04 Javascript
Vue入门之数据绑定(小结)
2018/01/08 Javascript
用Axios Element实现全局的请求loading的方法
2018/03/15 Javascript
Angular路由ui-router配置详解
2018/08/01 Javascript
JS实现的对象去重功能示例
2019/06/04 Javascript
Nuxt.js的路由跳转操作(页面跳转nuxt-link)
2020/11/06 Javascript
paramiko模块安装和使用(远程登录服务器)
2014/01/27 Python
Python类的动态修改的实例方法
2017/03/24 Python
Django数据库连接丢失问题的解决方法
2018/12/29 Python
Python docx库用法示例分析
2019/02/16 Python
Python hexstring-list-str之间的转换方法
2019/06/12 Python
Python发起请求提示UnicodeEncodeError错误代码解决方法
2020/04/21 Python
Python 使用SFTP和FTP实现对服务器的文件下载功能
2020/12/17 Python
python解包用法详解
2021/02/17 Python
CSS3制作ajax loader icon实现思路及代码
2013/08/25 HTML / CSS
使用CSS3的ruby-position固定注音位置的用法示例
2016/07/05 HTML / CSS
德国家具在线:Fashion For Home
2017/03/11 全球购物
城建学院毕业生自荐信
2014/01/31 职场文书
《口技》教学反思
2014/02/21 职场文书
上课看小说检讨书
2014/02/22 职场文书
解除同居协议书
2015/01/29 职场文书
Vue Element UI自定义描述列表组件
2021/05/18 Vue.js
nginx配置之并发频次限制
2022/04/18 Servers