初识轻量级前端开发框架backbone

这款前端开发javascript框架在业内已经是大名鼎鼎了,但是楼主还没有接触过,看风评这年头不懂backbone怎敢出去装

这几天的工作还算是不紧张,速度充电

基于jquery、underscore的前端javascript框架

backbone.js是一款web前端开发的javascript轻量级MVC框架;依托此框架,我们可以像高级语言一样定义类、类属性及方法,更好的组织代码并按框架提供的数据逻辑分离方法减少代码混乱

必须的文件

需要下载这3个js文件:zepto(jquery的替代品,你可以把它理解为jquery的mini版)、underscorebackbone

<script src="js/zepto.min.js"></script>
<script src="js/underscore.min.js"></script>
<script src="js/backbone.min.js"></script>

backbone的4大模块

模型:Backbone.Model,一个数据模型

集合:Backbone.Collection,数据模型的一个集合

视图:Backbone.View,数据处理

路由:Backbone.Router,路由配置

模型

这是一个标准的对象模型(数据假定为网站最常见的用户),initialize为初始化方法,默认执行定义的函数或监听必要的事件;defaults为初始化参数,定义的参数将作为对象模型的默认参数

var User = Backbone.Model.extend({
    initialize : function(){
    },
    defaults : {
        name : ‘大白兔‘
        lang : ‘汉语‘
    }
});

实例化对象模型User,并获得对象属性attributes,输出的数据结构为:Object {name: "大白兔", lang: "汉语"}

var user = new User;
console.log(user.attributes);

调用set方法设置对象模型指定属性、get方法可以获得对象模型指定属性值

var user = new User;
user.set({name : ‘小白兔‘});
console.log(user.get(‘name‘));

初始化方法initialize中监听属性变化事件change并在回调中自定义属性变化的信息提示

var User = Backbone.Model.extend({
    initialize : function(){
        this.bind(‘change:name‘, function(){
            console.log(this.attributes);
        });
    },
    defaults : {
        name : ‘大白兔‘,
        lang : ‘汉语‘
    },
});

var user = new User;
user.set({name : ‘‘});

调用save方法提交对象模型数据、设置数据提交地址url

var User = Backbone.Model.extend({
    url : ‘/‘
});

var user = new User;
user.save();

既然准备提交对象模型数据了,数据验证方法validate中自定义数据校检方法、初始化方法initialize中监听提交失败事件error并在回调中自定义返回错误的信息提示;一个关于模型的完整demo

var User = Backbone.Model.extend({
    url : ‘/‘,
    initialize : function(){
        this.bind(‘change:name‘, function(){
            console.log(this.attributes);
        });
        this.bind(‘error‘, function(){
            console.log(‘数据提交失败‘);
        });
    },
    defaults : {
        name : ‘大白兔‘,
        lang : ‘汉语‘
    },
    validate : function(obj){
        if(obj.name.length < 2) console.log(‘昵称过短‘);
    }
});

var user = new User;
user.set({name : ‘‘});
user.save();

集合

现在我们要把实例化对象模型的数据存放在实例化对象集合中,就需用到集合了,这里有点绕,楼主在这里绕了很久;可以理解为通过改变集合Users的属性model的值为模型User,从而指定了与集合Users相关联的模型,这里的模型是User

var User = Backbone.Model.extend({
    initialize : function(){
    },
    defaults : {
        name : ‘‘,
        lang : ‘‘
    }
});

var Users = Backbone.Collection.extend({
    model : User
});

实例化对象集合,并为对象集合添加add一组需按模型模式实例化的指定数据,然后打印对象集合内所有模型数据

var users = new Users;

var arr = [[‘大白兔‘, ‘汉语‘], [‘贝克汉姆‘, ‘英语‘], [‘齐达内‘, ‘法语‘]];
for(var i = 0; i < arr.length; i ++){
    var user = new User({
        name : arr[i][0],
        lang : arr[i][1]
    });
    users.add(user);
};

users.each(function(obj){
    console.log(obj.attributes);
});

初始化方法initialize中监听数据添加事件add并在回调中自定义数据添加后的信息提示

var Users = Backbone.Collection.extend({
    initialize : function(){
        this.bind(‘add‘, function(obj){
            console.log(‘add‘, obj.attributes);
        });
    },
    model : User
});

既然是数据,就有添删改;有了添加事件,对应的对象数据删除事件remove、对象数据改变事件change;一个关于集合的完整demo

var User = Backbone.Model.extend({
    initialize : function(){
    },
    defaults : {
        name : ‘‘,
        lang : ‘‘
    }
});

var Users = Backbone.Collection.extend({
    initialize : function(){
        this.bind(‘add‘, function(obj){
            console.log(‘add‘, obj.attributes);
        });
        this.bind(‘remove‘, function(obj){
            console.log(‘remove‘, obj.attributes);
        });
        this.bind(‘change‘, function(obj){
            console.log(‘change‘, obj.attributes);
        });
    },
    model : User
});

var users = new Users;

var arr = [[‘大白兔‘, ‘汉语‘], [‘贝克汉姆‘, ‘英语‘], [‘齐达内‘, ‘法语‘]];
for(var i = 0; i < arr.length; i ++){
    var user = new User({
        name : arr[i][0],
        lang : arr[i][1]
    });
    users.add(user);
};

user.set({
    name : ‘卡恩‘,
    lang : ‘德语‘
});

users.remove(user);

本想把视图也一起写完,但是发现视图必须有相对应模型,于是视图模型的合作才是重点,虽然楼主也做好了例子但还不甚了了,待我思索成熟后再专门说免得误人误己

网上的文档其实很多,但是每个人的理解方式能力各不相同,不同的人可能需要不同的文章才能理解下去,楼主于是把自己的理解方式留下来
时间: 2024-10-28 11:52:18

初识轻量级前端开发框架backbone的相关文章

前端开发框架对比

前端开发框架对比 本文选取了 Bootstrap.jQuery UI.jQuery Mobile.Sencha ExtJS.Sencha Touch.Sencha GXT.Dojo.Dojo Mobile.Mootools.Foundation.YUI.Kissy.QWrap 等 16 个国内外前端开发框架进行初步的横向比较,可以作为大家挑选前端开发框架的初步参考. 近几年随着 jQuery.Ext 以及 CSS3 的发展,以 Bootstrap 为代表的前端开发框架如雨后春笋般挤入视野,可谓应

国外很有多优秀的HTML5前端开发框架

相信大家都耳熟能详:JQuery Mobile,Twitter Bootstrap, Schena Touch,  BackBone等等. 同样,也存在很多国内比较优秀的前端开发框架,其中中国互联网三巨头贡献了近一半:腾讯,阿里巴巴,百度. 框架不是万能的,选择和项目匹配的框架可以显著提高开发效率,但是也有可能带来代码的臃肿,本着”思想,选择合适的框架是最重要的.其中每个框架各有特点,还需要读者自己把关.如:腾讯的JX比较适合构建和组织大规模.工业级的Web App,腾讯内部的WebQQ.Q+等

最流行前端开发框架对比

如今,各种开发框架层出不穷,各有千秋.哪些是去年较受开发者关注的呢?前不久,云适配根据Github上的流行程度整理了2014年最受欢迎的6个前端开发框架,并进行对比说明,希望帮助有需要的朋友选择合适自己的前端框架. 1. Bootstrap Bootstrap毫无疑问是现今框架的领导者.他不仅仅流行,每天用户量也在不断增长.你可以相信,这个工具不会让你失望,你也可以单独使用它制作自己的网页. 创建者:Mark Otto and Jacob Thornton 发布:2011 当前版本:3.3.1

最流行前端开发框架对比评测

如今,各种开发框架层出不穷,各有千秋.哪些是去年较受开发者关注的呢?前不久,云适配根据Github上的流行程度整理了2014年最受欢迎的6个前端开发框架,并进行对比说明,希望帮助有需要的朋友选择合适自己的前端框架. 1. Bootstrap Bootstrap毫无疑问是现今框架的领导者.他不仅仅流行,每天用户量也在不断增长.你可以相信,这个工具不会让你失望,你也可以单独使用它制作自己的网页. 创建者:Mark Otto and Jacob Thornton 发布:2011 当前版本:3.3.1

web前端开发框架推荐

Twitter Bootstrap 简洁.直观.强悍的前端开发框架,让web开发更迅速.简单. Bootstrap 中文 NEC : 更好的CSS样式解决方案 读规范,让你的代码更具智慧和美丽的方法用框架,选择一份合适的HTML和CSS基础代码找代码,在这里找到她,或给你启发,或她就是你的装插件,帮助你快速有效的使用代码库 Nice Easy Javascript NEJ 是由网易前端组工程师们发起创建的简洁,美观,真正的跨平台web前端开发框架:她遵循的原则是 自由定制.小巧灵活.简洁易用.愉

UIkit – 轻量级前端框架

高效轻量级前端框架: 来自:咕噜分享

前端开发框架选型清单

随着Web技术的不断发展,前端开发框架层出不穷,各有千秋,开发者在做技术选型时总是要费一番脑筋,最近,IBM高级工程师王芳侠撰文对Bootstrap.jQuery UI.jQuery Mobile.Sencha ExtJS.Sencha Touch.Sencha GXT.Dojo.Dojo Mobile.Mootools.Foundation.YUI.Kissy.QWrap 等 16 个国内外前端开发框架进行了比较详细的比较,非常值得读者借鉴. 从国外的桌面端框架来说,作者认为主要有以下几个:

25款最佳响应式前端开发框架 开源资讯

25款最佳响应式前端开发框架 开源资讯:http://code.csdn.net/news/2819417 10个免费的响应式布局HTML5+CSS3模板:http://www.html5cn.org/article-6799-1.html bootcss的学习网站 http://cnbootstrap.com/base-css.html http://www.bootcss.com/ http://www.egouz.com/topics/5647.html http://www.oschin

前端开发框架3--BootStrap

1.BootStrap介绍 BootStrap是一套简介.直观.快速.高效的web前端开发框架,它提供的丰富的组件以及图标,还有多种布局风格,整体采用响应式布局模式,兼容PC及移动设备,它的诞生是每一位web开发者的福音,使得开发者将更多的精力放在业务逻辑的设计上,不再为界面数据的展示而烦恼. 中文官网:http://www.bootcss.com/ 主题下载地址:http://bootswatch.com/ 前端开发框架3--BootStrap,布布扣,bubuko.com