backbone的一些认识】的更多相关文章

卤煮在大概一年前写过backbone的源码分析,里面讲的是对一些backbone框架的方法的讲解.这几天重新看了几遍backbone的源码,才发现之前对于它的理解不够深入,只关注了它的一些部分的细节和实现技巧.忽略了它的设计思想,而卤煮认为,一套库或者框架最值得借鉴的地方正好是它的设计思想.也巧,最近卤煮在读<设计模式与实践>这本书,所以温故知新,学以致用,打算写一篇博客算作这个系列的补充,以免将来忘记了代码时可以作为参考. 观察者模式 即使不用读源码,也知道backbone使用了观察者模式.…
注:文章内容都是摘录性文字,自己阅读的一些笔记,方便日后查看. MVC MVC(Model-View-Controller),M 是指业务模型,V 是指用户界面,C 则是控制器,使用 MVC 的目的是将 M 和 V 的实现代码分离,从而使同一个程序可以使用不同的表现形式. 交互方式(所有通信都是单向的): View 传送指令到 Controller Controller 完成业务逻辑后,要求 Model 改变状态 Model 将新的数据发送到 View,用户得到反馈 更详细的说明: 模型(Mod…
本文介绍如何使用backbone的history模块实现SPA应用里面的URL管理.SPA应用的核心在于使用无刷新的方式更改url,从而引发页面内容的改变.从实现上来看,url的管理和页面内容的管理是其中的两个难点.就url的管理而言,主要有以下三方面的要求: 1)对于要采用单页跳转的链接,不能有页面刷新: 2)浏览器的前进和后退,都能像多页应用那样,显示之前访问地址对应的内容: 3)应用处于任何一个单页链接地址时,当用户刷新,依然能初始化显示该地址对应的内容. 假如要自己来实现一个能够满足以上…
Model和Collection和后台的WEB server进行数据同步非常方便, 都只需要在实行里面添加一url就可以了,backbone会在model进行save或者collection进行create时,自动将数据用POST或者PUT方式通过该url发送到后端.按照POST和PUT的含义,backbone采用的原则是: 如果model数据为一个全新的实例,则使用POST请求:如果model数据是一个已经存在的实例, 单需要修改实例属性,则采用PUT请求. 所以,问题的关键是,backbon…
下面这段代码中, 当调用destroy时,backbone会通过model中的url,向服务端发起一个HTTP DELETE请求, 以删除后台数据库中的user数据. 成功后,会回调触发绑定到destroy的success()方法.但数据库已经成功删除,也未报任何异常,但前端JS的success始终不能触发. User = Backbone.Model.extend({ initialize: function(user) { ... ... }, url:"/user/xxx", }…
前言: Backbone.js是一款JavaScript MVC应用框架,强制依赖于一个实用型js库underscore.js,非强制依赖于jquery:其主要组件有模型,视图,集合,路由:与后台的交互主要是通过Restful JSON 进行数据传输: 基础Backbone.js知识: 1.引入js文件:如果依赖于第三方类库如jquery,则最好先引入:之后引入underscore.js 这是必须引入且在引入backbone.js之前,其引入文档结构如下: <head> <meta ch…
事件模块Backbone.Events在Backbone中占有十分重要的位置,其他模块Model,Collection,View所有事件模块都依赖它.通过继承Events的方法来实现事件的管理,可以说,它是Backbone的核心组成部分. 此外,事件模块的所有方法都挂在了全局的Backbone上,如果你的代码中需要用到自定义事件(实现观察者模式),可以直接使用它. 一.Events API 1.0之前只提供了三个基本方法 on/once/off/trigger,1.0开始增加了几个实用方法 li…
extend函数在backbone大概就20来行代码包括注释,对学习Javascript中"类"的继承很是好的学习资料. 下面先贴出Backbone中的源码,其中涉及到underscore库中几个实用函数_.has();.create();.extend(); // Helper function to correctly set up the prototype chain for subclasses. // Similar to `goog.inherits`, but uses…
具体以源码为准 Talent继承自Marionette继承自BackBone Region: 继承自Backbone.Event,show(view)会调用view.render(),然后$el.append(view.el),触发相应的事件 Layout: 继承自 ItemView,可以设置regions属性 CompositeView: 继承自collectionView,将Item添加到template中 'itemview:deleteItem'事件 itemViewOptions Co…
最近因为有个项目需要用backbone+mui  所以最近入坑backbone. Backbonejs有几个重要的概念,先介绍一下:Model,Collection,View,Router.其中Model是根据现实数据建立的抽象,比如人(People):Collection是Model的一个集合,比如一群人:View是对Model和Collection中数据的展示,把数据渲染(Render)到页面上:Router是对路由的处理,就像传统网站通过url现实不同的页面,在单页面应用(SPA)中通过R…