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 相关文章推荐
线路分流自动跳转代码;希望对大家有用!
Dec 02 Javascript
jquery选择checked在ie8普通模式下的问题
Feb 12 Javascript
详解JavaScript中shift()方法的使用
Jun 09 Javascript
JavaScript节点及列表操作实例小结
Aug 05 Javascript
js强制把网址设为默认首页
Sep 29 Javascript
深入理解vue-loader如何使用
Jun 06 Javascript
vue编译打包本地查看index文件的方法
Feb 23 Javascript
layui点击导航栏刷新tab页的示例代码
Aug 14 Javascript
nest.js 使用express需要提供多个静态目录的操作方法
Oct 24 Javascript
js实现选项卡效果
Mar 07 Javascript
vue实现移动端拖动排序
Aug 21 Javascript
Webpack3+React16代码分割的实现
Mar 03 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
DOTA2 无惧惊涛骇浪 昆卡大型水友攻略
2020/04/20 DOTA
PHP 通过Socket收发十六进制数据的实现代码
2013/08/16 PHP
Smarty中调用FCKeditor的方法
2014/10/27 PHP
php中file_exists函数使用详解
2015/05/08 PHP
ThinkPHP路由机制简介
2016/03/23 PHP
Extjs gridpanel 出现横向滚动条问题的解决方法
2011/07/04 Javascript
jQuery EasyUI API 中文文档 - TimeSpinner时间微调器
2011/10/23 Javascript
基于mootools插件实现遮罩层新手引导
2012/05/24 Javascript
Javascript算符的优先级介绍
2013/03/20 Javascript
页面刷新时记住滚动条的位置jquery代码
2014/06/17 Javascript
JS实现漂亮的淡蓝色滑动门效果代码
2015/09/23 Javascript
详解javascript实现瀑布流绝对式布局
2016/01/29 Javascript
手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现
2016/08/25 Javascript
AngularJS出现$http异步后台无法获取请求参数问题的解决方法
2016/11/03 Javascript
纯JS焦点图特效实例(可一个页面多用)
2016/12/07 Javascript
Vue父子模版传值及组件传值的三种方法
2017/11/27 Javascript
vue之将echart封装为组件
2018/06/02 Javascript
[50:27]OG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/30 DOTA
python局部赋值的规则
2013/03/07 Python
python求斐波那契数列示例分享
2014/02/14 Python
Python中使用logging模块代替print(logging简明指南)
2014/07/09 Python
解决pytorch GPU 计算过程中出现内存耗尽的问题
2019/08/19 Python
Django 解决阿里云部署同步数据库报错的问题
2020/05/14 Python
python如何保存文本文件
2020/06/07 Python
在Tensorflow中实现leakyRelu操作详解(高效)
2020/06/30 Python
CSS3实现精美横向滚动菜单按钮
2017/04/14 HTML / CSS
HTML5拖放API实现拖放排序的实例代码
2017/05/11 HTML / CSS
KLOOK客路:发现更好玩的世界,预订独一无二的旅行体验
2016/12/16 全球购物
中国旅游网站:途牛旅游网
2019/09/29 全球购物
工程现场管理求职自荐信
2013/10/02 职场文书
外国语学院毕业生自荐信
2013/10/28 职场文书
财务副总经理工作职责
2013/11/25 职场文书
运输服务质量承诺书
2014/03/27 职场文书
体育口号大全
2014/06/18 职场文书
聘任通知书
2015/09/21 职场文书
Javascript中Microtask和Macrotask鲜为人知的知识点
2022/04/02 Javascript