admin large avatar

admin

admin是第501号会员,加入于2015-06-04 17:08

签名:

个人主页:http://www.weibo.com/xixinliang

所在地:

作家,代表作《超实用的JavaScript代码段 》

admin 最近创建的主题

admin 最近回复了

  • 回复了 掉渣小伙 创建的主题 跨域问题,解决之道

    总结的不错 2016-11-09
  • 回复了 LHP201609 创建的主题 刚入门的小白怎么学习前端

    @缔少 666 2016-10-24
  • 回复了 ggdragon 创建的主题 求助。每个星星绑定点击事件由灰变亮,下面记录次数。每点击一个次数加一,不能重复点击

    这个需要你和后台协商数据结构,结合你的具体业务逻辑,你描述的太简单,不太详细 2016-10-21
  • 回复了 jiayingzi9 创建的主题 Backbone.js 和 Angular.js 选哪个

    Backbone.js 的适用场景非常广,无论是 Web-Page 还是 Web-App 都可以应用,但最合适的还是大型的 Web-App,对于中小型项目来讲 Backbone.js 的 MVC 结构还是有点臃肿了,用不好很容易 over design。Backbone.js 是非常典型的 MVC 框架,但是相对于传统的 server 端 MVC 来讲还是有一些特殊的地方的。

    首先 Backbone 中的几大核心组件 View、Model、Collection、Router 中并没有 Controller。其实 v0.5 以前是有 Backbone.Controller 这个东西的,但由于做的根本不是 C 的事情,这个名字又太具有迷惑性了,后来改名叫做 Backbone.Router。而真正的 C 其实是 Backbone.View,但这个 View 其实是部分的 C(还有一部分在 Backbone.Router 中) 部分的 V,由于前端的模板功能有限,很多应该在 template 中做的事情不得不被拿到 Backbone.View 中来实现。

    其次,由于 MVC 的概念中认为 V 其实是永远不知道用户输入(鼠标、键盘事件等)的,C 是输入和 V 之间的连接,但在浏览器中这点其实是实现不了的,V 就是 HTML,而用户输入是基于 HTML 页面的,所以你可以忽略用户输入,把所有事件都导入到 C 去处理,但不代表 V 不知道这件事情。所以前端的 MVC 多少是对传统的 MVC 模型做了些改变的实现,近些日子更多的人转向 MVVM 就是这个原因。

    Backbone.js 的优点:
    1. 代码质量比较高,通读一遍还是能学到不少东西的。
    2. 只做框架该做的事情,不做高大全的东西。所以很容易和其他的工具或框架整合。比如有人搞了 Bakcbone.js Knockout.js 的 Knockback.js。
    3. 分层的结构很清晰,使得前端工程在扩展性和维护性上都可以进行有效控制。

    Backbone.js 缺点:
    1. Model 结构比较简单,多对多、但对多的数据模型很难搞,用对象做属性也不行。
    2. 内存控制,View 很容易产生 memory leak 的问题,不过这也和代码的质量有关系,近期的更新有一些是针对这方面的。
    ----------分割线----------

    未来的发展趋势是前端后端只靠json数据来进行通信:后端只处理和发送一段json数据到前端,然后计算和模板渲染都在前端进行。而前端的改动后,形成json数据然后传回到后端。未来趋势就是:后台程序再也不做模板的任何处理

    AngularJS 的作用简单说就是就是把后台的json值直接用html进行渲染,然后html的操作又直接在形成json传回后台。

    未来的后台MVC,试图不再是模板了,而是一段结构整齐标准的JSON,而这个JSON作为前台的model直接在AngularJS直接使用。

    或者说后台的试图是前台的模型,而整个前台就是后台的视图。后台程序再也不做模板的任何处理了。


    Angular是框架的一种,不学也能开发前端。学backbone或者ember也能开发前端。没有js的mvc,就光弄个jquery,也能开发前端。

    那 到底要不要学?个人觉得就是要看发展趋势。angular是否简化的前端开发,是否符合未来前端的开发趋势。以现在的js的发展程度来看,angular 是符合发展趋势的,第一,解耦前端,第二,可以模块化,第三可测试,第四天生支持json,第五依赖注入等等等,还有一些其他特性使得angular跟随 甚至是推动了前端的开发趋势。

    所以说angular学习是有好处的:
    1.了解前端的开发趋势
    2.学习MV*的设计方法
    3.学习模块化编程
    4.学习如何测试模块
    5.使用angular简化开发流程
    6.随着google的大力支持和逐渐流行,公司开始使用angular,有些岗位需要有angular的知识才能工作。

    自己识别一下吧 2016-10-21

前端范

现在注册 已注册请 登录

官方公众号


100000前端码农使用“js攻城师”,免费扫码加入

微信号:js_gcs

干货技术(js、html5、Node.js等)、实战经验、原创文章应有尽有!