通常面对一个新鲜事物,各种各样的问题总是成为促使我们去学习,探索的第一驱动力。
对于Backbone,今天主要提出以下几个问题:
- 我们为什么需要Backbone?
- 这个框架怎么样,他的优点和缺点呢,它的适用场景呢?
- 前端框架很多,为什么选择backbone学习?
一、我们为什么需要Backbone?
随着前端技术的发展,用户硬件的飞速提升,浏览器的不断改进,一些以前需要在服务端完成的任务,现在可以移到客户端去完成,特别是现在进入多用户端的时代,web应用的开发模式也面临着巨大的挑战。mvc思想为我们解决多端问题提供了很好的实践。javascript作为一门弱类型脚本语言,松散灵活的语言风格,导致代码的组织管理成为一个令人头疼的问题。我们能否借用mvc的思想来实现前端架构的解耦呢,这样我们可以把关注点分解到更细的粒度,让代码从乱麻式的嵌套回调变的有序,优雅。Backbone就是这样的背景下诞生的一款优秀的前端mvc框架。
二、这个框架的优缺点
javascirpt web应用的兴起,主要是借助ajax实现局部刷新,按需请求, 良好的交互和用户体验受到人们的青睐。
没有永远的银弹,任何解决方案都有其适用范围,这是人类认知过程中的普遍规律
那么backbone适用于哪些场景呢,如果一个web应用要使用javascirpt实现复杂的交互,或者一个单页应用,或者离线web应用,那么backbone是一个不错的选择。他就是为规范化,简单化javascript开发而生的。但是如果你的应用只是使用一些javascript实现简单的dom操作,那么jquery已经完全足够了,要注意,尽管backbone是基于mvc的,但是它的基本组件model ,view, collection,其实是可以作为一种数据结构单独使用的。当存在大量的数据交互时,使用backbone是合适的。
backbone的缺点:seo支持不好,因为使用ajax进行数据交互,形成不同的页面外观,但是搜索引擎不会执行页面的ajax,很多逻辑上的页面就无法被收录, 目前google有解决方案,可惜google被封了,其他的搜索引擎支持如何,还不知晓,这个是硬伤。还有就是代码的模块化这一块。其实这些缺点是所有javascript框架都无法避免的问题。
三 你为什么要学习backbone?
这就要谈到学习动机问题了。
想走前端之路,要跟上时代嘛,虽然这些东西在实际生产中未必能用的上,通过学习这些框架,能提升自己的前端技能,加深对javascript的理解。之前学了阵angular,觉得这玩意很强大,但是目前水平有限,难以入手。相比与angular,我觉的backbone更加容易学习一些,它的整体思路与后端的mvc思路很相似。框架本身也是比较独立的(依赖underscore依赖)代码逻辑相对比较易懂一些,各种教程也还是蛮多的。打算拿这个作为学习angular的铺路石。