多款优秀的 JS MVC 框架对比

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

正如之前说的,产品生产有功能时代转入体验时代,产品为王,体验为王,已经是时代趋势。体验经济的到来,说明前端的技术要求越来越高,完成功能是不行的,还要有优秀的体验。
        所以类似原来的jquery时代类似于传统的汇编或者是C时代的编程,这个阶段已经不work了。前端的技术即将迈入模式时代,MVC时代。应此而生,现在有大量的前端MVC框架技术不断出现。下面我们挑选几款代表性的前端框架进行对比,以做参考。
1.  Backbone.js 




Backbone.js是web非常火的框架,众多知名品牌均支持该框架,令人印象深刻,自然地成为最先进行尝试的框架。用它来建造了一个Group Talent内部用行政管理方面功能的feature应用。 




优点:强大的社区,还有大量的实力支持。例如它本身就较多地使用了Underscore.js(也是一个强大的框架)。 




缺点:抽象功能不够强,以及一些需要的功能还没实现。整个框架十分轻量级,产出的结果是一大堆引用文件和样板:而且应用的规模越大这一点就会越明显。 




2.  SproutCore 1.x 




SproutCore最开始是苹果公司用于其iCloud上面的。除了名字起得很不好之外,它实际上是一个非常优秀的框架,也是最大的框架之一。 




优点:支持绑定,忠实的社区粉丝,优秀的feature很多。 




缺点:过于死板,难以去除无用的feature,强制使用一种Native风格的范例,严重的情况在于该框架不允许使用HTML来做布局。 




3.  Sammy.js 




Sammy是偶然发现的一个比较小的框架,因为它太简化了,基本不能占据列表的席位。其核心feature是一个路由系统,让应用与AJAX进行交换。 




优点:简单的学习曲线,与服务器端的app集成更加容易。 




缺点:太过于简单,对于大型应用就有些捉襟见肘。 




4.  Spine.js 




器如其名,Spine显然是受到Backbone的强烈影响,像Backbone一样也是一个非常轻量级的框架,遵循相似的模型。 




优点:轻量级,文档做得很好。 




缺点:从根本上就有缺陷。Spine的一个核心概念是“一个坚果外壳中的一堆异步的UI集,这意味着UI应该是在理想化条件下永远不会阻塞的”。而做了一系列的非阻塞式实时应用之后,可以说这简直是不现实的,除非后端是像Operational Transformation之类的。 




5.  Cappuccino 




Cappuccino是一款更加独特的框架,自带编程语言Objective-J,还能尝试着在浏览器中仿真Cocoa。 




优点:大型的构想出的框架,良好的社区环境,强大的继承模型。 




缺点:在您所有能用Javascript仿真的语言之外,Objective-C是最不想选用的。它起源一位iOS开发人员,到现在还没想明白用浏览器编写Objective-J是什么意思。 




6.  Knockout.js 




K.O.是一个MVVM框架,受到其支持者的大量好评。它强调陈述式UI绑定和自动UI刷新。 




优点:支持绑定,文档做得出色,引导系统超级赞。 




缺点:绑定语法晦涩,缺乏坚实的视图组件层次结构。希望能够轻松地重用组件,也觉得定义成一个MVVM框架是有害的。这些框架中基本没有MVC,但都是(MVP,MVVM之类的)的变种。 




7.  Breeze Js




国产货,众联无限开发的一套独立自研的前端MVC框架。他的概念很有意思,就是将后端开发语言,如Java,的概念模拟应用到前端。有class有继承,能实现模板和应用绑定。








优点:概念模拟,学习成本低,上手快。封装很薄,扩展性和兼容性都很好






缺点:相关的组件和第三方资源比较少,依赖jquery和seajs






8.  Google Web Toolkit 




GWT是一系列的客户端工具包,除了框架之外还包含很多其他工具。它可以把java语言编译成Javascript,支持标准Java库的一个子集,最初是Google公司使用在Wave上面的。 




优点:综合宽泛的框架,拥有强大的社区支持。基于Java的坚实组件继承模型,在巨型客户端应用上表现出色。 




缺点:除了Google说的之外,GWT将经不住时间的检验。就好像最初DART那样,很明显Java不是web的未来。更严重的是,客户端对于Java的抽象有一点不合适。 




9.  Google Closure 




如果说Google Closure仅仅是一个js框架,倒不如说更像是一个工具包。附带编译器和优化器。 




优点:由Google用在其很多主流app上面。良好的基于组件的UI编写系统。 




缺点:不支持UI绑定。 




10.  Ember.js 




Ember(之前是SproutCore 2.0)是竞争者中的新丁。它是一个尝试:从SproutCore2.0中抽取分离其核心feature并转变成为一个更加紧凑的模型框架,更加适合web。 




优点:特别丰富的模板系统,拥有可编写的视图和UI绑定。 




缺点:由于太新,文档跟不上。 




11.  Angular.js 




Angular是在发布评估结果之后才发现的一个很好的框架,由Googler开发,包含了很多有趣的设计选择。 




优点:关于模板的范围和控制器的设计考虑的很周到。具有依赖注入系统。支持丰富的UI绑定语法,从而使得过滤和转换这样的工作开销很小。 




缺点:代码库很不健全,也不够模块化。视图也不够模块化(关于这点在Batman.js的缺陷中讨论的更加细致) 




12.  Batman.js 




Batman由Shopify创作,是另一款与Knockout和Angular具有相似脉络的框架。Batman拥有良好的UI绑定系统,是基于HTML属性的。Batman是唯一的一款使用惯用语法Coffeescript编写的框架,并且紧密地与NODE.Js集成在一起,甚至可以到拥有其(可选的)Node.js服务器的程度。 




优点:代码库十分清晰,绑定方法优良又简单,耐用,流程化。 




缺点:非常不喜欢这种“独行侠”式的作风,更不用说这种加强单一控制器的主意了。与Knockout和Angular一样,在组件嵌套的时候遭受同样的折磨。需要的不仅仅是模板,还更想要陈述式的可重用的模板框架。相比,Ember在框架之上拥有的是一个基于EMBER他们自己的逻辑(可能是在控制器层上的)的整套组件能陈述式重用的方法。 

转载于:https://my.oschina.net/u/2342955/blog/523996

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/399440.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在WordPress文章中插入表格的四种方法,史上最全

https://boke112.com/4553.html/all td, tr {border: 1px solid #000000;text-align: center;padding: 10px;} 在做 WordPress 网站的时候,很多时候文章中都会用到 table 表格,今天就来总结分享四种在WordPress 文章中插入 table 表格的方法。 一、最简…

(转)在Eclipse中用TODO标签管理任务(Task)

背景:eclipse是一款功能十分强大的编辑,如果能够熟练运用,必定事半功倍,但如果不求甚解,无疑是给自己制造麻烦。 1 标签的使用 1.1 起因 如上图所示,在程序中有很多todo的标签出现,但是却不知道…

制作启动U盘与定制多系统启动

制作启动U盘与定制多系统启动 说明:本文将讲述有关bootmgr引导启动与grub引导启动制作的相关经验,文中提到的知识谈不上完全正确,只是一些个人在制作U盘启动获得的心得,但我会尽力正确的解释清楚。 制作启动U盘 所需工具&#xf…

wordpress footer置底

/* 通过calc()函数让内容区块自动伸缩 */ .my-body{min-height: calc(71.7vh - 80px); } footer{height:50px; } 参考:https://www.jianshu.com/p/6efe2c76a2dd 当我们要设置网页中的footer置底(sticky footer),我们可以这样办 …

电脑公司 GHOST WIN10 X64 装机专业版 V2018.04(64位)

http://www.xitongzhijia.net/win10/201804/123923.html 系统简介 电脑公司 GHOST WIN10 X64 装机专业版 V2018.04 系统维护和美化工具,常用软件一站到位,自带安全软件,自动屏蔽木马病毒阻止病毒运行,阻挡填出IE插件,G…

浅谈JavaScript中闭包

引言 闭包可以说是JavaScript中最有特色的一个地方,很好的理解闭包是更深层次的学习JavaScript的基础。这篇文章我们就来简单的谈下JavaScript下的闭包。 闭包是什么? 闭包是什么?通俗的解释是:有权访问另一个函数作用域中变量的函…

WordPress 查询数据库 操作数据库

https://www.168seo.cn/jianzhan/wordpress/advance-wordpress-tutorial/24692.html 插件位置 需要注意的是,由于在WordPress中可以配置wp-content/plugins/目录的位置,所以你必须使用plugin_dir_path()和plugins_url()两个函数来获取插件的路径。 Wor…

std string与线程安全_C++标准库多线程简介Part1

Part1:线程与互斥量本篇文章将简单的介绍一下C的标准线程库,本篇内容十分基础,如果你有C多线程相关的使用经验或者知识,就不必在这篇文章上浪费时间了...如果你认为本篇文章对你有帮助,请点赞!!&#xff01…

secilog 1.17 发布 增加了英文版本等新功能

2019独角兽企业重金招聘Python工程师标准>>> 日志分析软件 secilog 1.17发布,增加了英文版本,对日志导入增加了日志机器ip和日志机器名,或者日志ip和日志域名的关系。上篇文章1.16,有兴趣可以了解一下。本次升级主要增…

用clipboard.js实现纯JS复制文本到剪切板

以前很多人都是用ZeroClipboard.js来实现网页复制内容,火端也是用它。ZeroClipboard是利用flash来实现的,ZeroClipboard兼容性很好,但是由于现在越来越多的浏览器不支持flash,导致一些没法正常使用了。 今天火端开始使用clipboard…

vbs获取程序窗体句柄_PyQt5 GUI程序的基本框架

本节先通过一个简单的示例程序介绍PyQt5 GUI应用程序的基本框架。启动Python自带的编程和交互式环境IDLE,点击“File”→“New File”菜单项,打开一个文件编辑窗口,在此窗口中输入下面的程序,并保存为文件demo2_1Hello.py&#xf…

【学神】1-4 用户及用户组管理

用户及用户组管理本节所述内容:用户和组的相关配置文件管理用户和组 进入单用户模式找回root身份一、用户和组的相关配置文件1.用户的分类(1)根据帐号的位置:本地帐号、远程(域)帐号、LDAP&…

阿里REDIS优化

转载于:https://www.cnblogs.com/isoftware/p/3745956.html

vb子程序未定义怎么改怎么办_煤粉输送不畅、秤不稳怎么办?多家企业这样改!...

摘要: CWF型煤粉转子喂料系统优点在于运行稳定、精度高,一致以来受到用户的青睐,但其对煤粉要求也高,尤其是水分含量,直接影响给料的稳定性和受控性。各种非正常因素对测控的影响较大,容易造成下料不畅、波动等现象,下…

SQL Server实现读写分离提高系统并发

转自:http://www.canway.net/Lists/CanwayOriginalArticels/DispForm.aspx?ID666 在一些大型的网站或者应用中,单台的SQL Server 服务器可能难以支撑非常大的访问压力。很多人在这时候,第一个想到的就是一个解决性能问题的利器——负载均衡。…

php如何获取网址中的参数

https://zhidao.baidu.com/question/140978452.html 比如有一个网址为 http://域名/goods.php?u59&id24#pinglun 我想得到这个id值 可以用正则,也可以用php函数解析到数组中 用正则可以这样 preg_match(/id(\d)/,$_SERVER["REQUEST_URI"],$m);//$_SERVER 这…

.net core 引用jar_Python一键转Jar包,Java调用Python新姿势!

粉丝朋友们,不知道大家看故事看腻了没(要是没腻可一定留言告诉我^_^),今天这篇文章换换口味,正经的来写写技术文。言归正传,咱们开始吧!今天的这篇文章,聊一个轩辕君之前工作中遇到的…

PHP版本的区别

2019独角兽企业重金招聘Python工程师标准>>> 以为这个已经写过了,发现没有,赶紧补充下。 PHP的版本,自从进入5以后,发布新版本速度明显提升很多,从PHP5.2开始,5.3 、5.4 、5.5,就快要…

1515 跳 - Wikioi

题目描述 Description邪教喜欢在各种各样空间内跳。现在,邪教来到了一个二维平面。在这个平面内,如果邪教当前跳到了(x,y),那么他下一步可以选择跳到以下4个点:(x-1,y), (x1,y), (x,y-1), (x,y1)。而每当邪教到达一个点&#xff0…

快速格式化的DOS命令是什么?

https://zhidao.baidu.com/question/3269005.html Dos下的format命令是用来进行格式化的。 FORMAT A:或c:, d:等等,后面可以加一些参数 比如FORMAT A: /S 这是格式化并追加系统。也就是制作一个简单的启动盘。 如果给硬盘进行格式化(重装系统前的准备工…