移动端开发框架哪个好?jQuery/Vue/AngularJS有哪些区别和优缺点?

JS框架,我认为大体上可以分为两种。一种是类似jQuery/ d3那样的,通过修改html的DOM结构来渲染UI的库。

还有一种则是类似于AngularJS/ReactJS 那样的,采用MVC分层的,通过Model来渲染View UI框架。


性能比较

jQuery基本都是浏览器原生操作,实计上h5的很多api都借鉴了jQuery,比如说在兼容IE6~IE7的蛮荒时代,HTML是没有按元素类选择器查找元素这类接口的,只有  document.getElementById 这一个常用的按ID取元素方法。

var wrapper = document.getElementById('wrapper')

jQuery 实现了一系列的按类/ID/元素名查找元素的引擎。

//按ID名
var $wrapper = $('#wrapper')
//按类名
var $wrapper = $('.article-title')

不过随着浏览器的发展,浏览器本身也已经支持类选择器了:

//查找单个元素
var wrapper = document.querySelector('#wrapper')
//查找多个元素 
var articleTitles = document.querySelectorAll('.article-title')

所以后来的jQuery版本就开始直接使用这些接口,所以基本上元素选择和更新都是使用浏览器原生的接口,这些操作几乎都没有性能损耗。所以说jQuery 操作DOM的性能还是比较好的。

开发效率比较

jQuery更新HTML虽然性能比较好,但是效率比较低,而且也不太符合目前浏览器的分层的前后端分离实践。因此出来后来的Backbone/ Angular 这样将JSON Data数据渲染成Html View的MVC/MVVM框架。极大地提高了开发效率。

注意这里也有些区别,jQuery类似于库,而Angular类似于框架,这也意味着使用Angular要严格按照框架规定来写。但Vue虽然也是MVC渲染,但更像一个库,所以明显要比Angular上手要容易,比如说下面的这个,直接绑定即可:

<div id="app">
  {{ message }}
</div>
var app = new Vue({
  el: '#app',
  data: {
    message: 'Hello Vue!'
  }
})


总结:jQuery从后台返回的数据要渲染到前端上需要通过手动更新DOM,但是手动改DOM一般比MVC渲染的性能好。但开发效率和代码规范不如NG/ReactJS。

目前总体来说基于jQuery的前端组件库最多,而Angular/React的还比较少。


下面列举几个比较知名的前端UI库:


Bootstrap

这个基本上就不用说明了,一个前端CSS框架,基于jQuery,但是很多复杂的控件没有,像 datagrid/ dialog/ tree/ charts之类的,不过基于bootstrap的组件库也比较多,可以自己去找找。


Foundation

类似Bootstrap https://foundation.zurb.com/


Semantic UI

前端框架,不过组件也比较少https://github.com/Semantic-Org/Semantic-UI


Kendo UI

kendoui.com 传统的各种datagrid/charts/dialog库,分开源和商业两种版本,使用比较复杂的控件要购买商业版。


Materialize

另一个前端响应式Web框架 https://github.com/Dogfalo/materialize


jQuery Mobile

http://demos.jquerymobile.com/1.4.5/slider/jQuery Mobile一些组件库(而非jquery的移动版本)。jQuery Mobile是一款基于HTML5的用户界面系统,


Sencha Touch

以前叫Ext,注意它不是基于jQuery的,是基于另外一种元素选择器构建起来的前端组件库。


另外还有一些 Amazeui/ jQuery EasyUI/ materialize/ weex 之类的,有兴趣也可以研究一下。

原文链接 http://ourjs.com/detail/5a33cebd3506837194998bb0

猜你喜欢

转载自blog.csdn.net/qq_23034755/article/details/80980224