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 相关文章推荐
window.open()弹出居中的窗口
Feb 01 Javascript
背景图跟随鼠标移动的Mootools插件实现代码
Dec 12 Javascript
jquerymobile checkbox及时刷新才能获取其准确值
Apr 14 Javascript
JavaScript 学习笔记之一jQuery写法图片等比缩放以及预加载
Jun 28 Javascript
jQuery打印指定区域Html页面并自动分页
Jul 04 Javascript
jQuery实现仿美橙互联两级导航菜单的方法
Mar 09 Javascript
jQuery关键词说明插件cluetip使用指南
Apr 21 Javascript
js如何判断访问是来自搜索引擎(蜘蛛人)还是直接访问
Sep 14 Javascript
JS针对浏览器窗口关闭事件的监听方法集锦
Jun 24 Javascript
js自定义瀑布流布局插件
May 16 Javascript
Vue-cli打包后如何本地查看的操作
Sep 02 Javascript
Vue项目打包、合并及压缩优化网页响应速度
Jul 07 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 定界符 使用技巧
2009/06/14 PHP
Yii框架视图、视图布局、视图数据块操作示例
2019/10/14 PHP
一个刚完成的layout(拖动流畅,不受iframe影响)
2007/08/17 Javascript
利用ASP发送和接收XML数据的处理方法与代码
2007/11/13 Javascript
网页和浏览器兼容性问题汇总(draft1)
2009/06/01 Javascript
JS动态添加option和删除option(附实例代码)
2013/04/01 Javascript
查找Oracle高消耗语句的方法
2014/03/22 Javascript
jquery delay()介绍及使用指南
2014/09/02 Javascript
JavaScript中使用Object.create()创建对象介绍
2014/12/30 Javascript
jQuery实现提交按钮点击后变成正在处理字样并禁止点击的方法
2015/03/24 Javascript
jQuery实现可以编辑的表格实例详解【附demo源码下载】
2016/07/09 Javascript
jquery easyui DataGrid简单示例
2017/01/23 Javascript
JS仿QQ好友列表展开、收缩功能(第一篇)
2017/07/07 Javascript
javascript基本常用排序算法解析
2017/09/27 Javascript
在vue项目中引入高德地图及其UI组件的方法
2018/09/04 Javascript
小程序调用微信支付的方法
2019/09/26 Javascript
Nuxt的路由动画效果案例
2020/11/06 Javascript
python批量修改文件名的实现代码
2014/09/01 Python
python定时器(Timer)用法简单实例
2015/06/04 Python
Python中Selenium模拟JQuery滑动解锁实例
2017/07/26 Python
VSCode下好用的Python插件及配置
2018/04/06 Python
使用Python向DataFrame中指定位置添加一列或多列的方法
2019/01/29 Python
python异步Web框架sanic的实现
2020/04/27 Python
关于Python3的import问题(pycharm可以运行命令行import错误)
2020/11/18 Python
html5桌面通知(Web Notifications)实例解析
2014/07/07 HTML / CSS
基于html5 canvas实现漫天飞雪效果实例
2014/09/10 HTML / CSS
NBA德国官方网上商店:NBA Store德国
2018/04/13 全球购物
团组织关系介绍信
2014/01/12 职场文书
学生打架检讨书
2014/02/14 职场文书
2014年服务行业工作总结
2014/11/18 职场文书
2014小学语文教学工作总结
2014/12/17 职场文书
《叶问2》观后感
2015/06/15 职场文书
导游词之无锡华莱坞
2019/12/02 职场文书
MySQL索引篇之千万级数据实战测试
2021/04/05 MySQL
Mysql文件存储图文详解
2021/06/01 MySQL
彻底解决MySQL使用中文乱码的方法
2022/01/22 MySQL