前端热门JavaScript框架的分析
- 1
一、 vue介绍
1.官网:https://cn.vuejs.org/
2.什么是vue.js
Vue.js是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用。
Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。
以尤雨溪为主的中国开发团队。
3.vue优点:
(1)双向数据绑定
也就是所谓的响应式数据绑定。这里的响应式不是@media 媒体查询中的响应式布局,而是指vue.js会自动对页面中某些数据的变化做出同步的响应。
也就是说,vue.js会自动响应数据的变化情况,并且根据用户在代码中预先写好的绑定关系,对所有绑定在一起的数据和视图内容都进行修改。而这种绑定关系,就是以input 标签的v-model属性来声明的,因此你在别的地方可能也会看到有人粗略的称vue.js为声明式渲染的模版引擎。
这也就是vue.js最大的优点,通过MVVM思想实现数据的双向绑定,让开发者不用再操作dom对象,有更多的时间去思考业务逻辑。
(2)组件化开发
在前端应用,我们是否也可以像编程一样把模块封装呢?这就引入了组件化开发的思想。之后可以进行重复使用。
Vue.js通过组件,把一个单页应用中的各种模块拆分到一个一个单独的组件(component)中,我们只要先在父级应用中写好各种组件标签(占坑),并且在组件标签中写好要传入组件的参数(就像给函数传入参数一样,这个参数叫做组件的属性),然后再分别写好各种组件的实现(填坑),然后整个应用就算做完了。
(3)Virtual DOM
现在的网速越来越快了,很多人家里都是几十甚至上百M的光纤,手机也是4G起步了,按道理一个网页才几百K,而且浏览器本身还会缓存很多资源文件,那么几十M的光纤为什么打开一个之前已经打开过,已经有缓存的页面还是感觉很慢呢?这就是因为浏览器本身处理DOM也是有性能瓶颈的,尤其是在传统开发中,用JQuery或者原生的JavaScript DOM操作函数对DOM进行频繁操作的时候,浏览器要不停的渲染新的DOM树,导致页面看起来非常卡顿。
而Virtual DOM则是虚拟DOM的英文,简单来说,他就是一种可以预先通过JavaScript进行各种计算,把最终的DOM操作计算出来并优化,由于这个DOM操作属于预处理操作,并没有真实的操作DOM,所以叫做虚拟DOM。最后在计算完毕才真正将DOM操作提交,将DOM操作变化反映到DOM树上。
(4)轻量高效
Vue.js通过简洁的API提供高效的数据绑定和灵活的组件系统
(5)动画系统
Vue.js提供了简单却强大的动画系统,当一个元素的可见性变化时,用户不仅可以很简单地定义对应的CSS Transition或Animation效果,还可以利用丰富的JavaScript钩子函数进行更底层的动画处理。
(6)Vue.js的特点:
MVVM框架、数据驱动、组件化、轻量、简洁、高效、快速、模块友好。
4.vue缺点:
(1) vue不支持ie8.0及以下的版本。
(2) 生态不太成熟,比如 编辑器里的语法提示 不太完善, 而这个又对效率很重要。
(3) 主要还是社区吧,这点是无法与 react 和 angular 相比的。
5.与其他框架的对比
官网文档:https://cn.vuejs.org/v2/guide/comparison.html
1.与AngularJS的区别
相同点:
都支持指令:内置指令和自定义指令。
都支持过滤器:内置过滤器和自定义过滤器。
都支持双向数据绑定。
都不支持低端浏览器。
不同点:
(1)AngularJS的学习成本高,比如增加了Dependency Injection特性,而Vue.js本身提供的API都比较简单、直观。
(2)在性能上,AngularJS依赖对数据做脏检查,所以Watcher越多越慢。Vue.js使用基于依赖追踪的观察并且使用异步队列更新。所有的数据都是独立触发的。对于庞大的应用来说,这个优化差异还是比较明显的。
2.与React的区别
相同点:
react采用特殊的JSX语法,Vue.js在组件开发中也推崇编写.vue特殊文件格式,对文件内容都有一些约定,两者都需要编译后使用。
中心思想相同:一切都是组件,组件实例之间可以嵌套。
都提供合理的钩子函数,可以让开发者定制化地去处理需求。
都不内置列数AJAX,Route等功能到核心包,而是以插件的方式加载。
在组件开发中都支持mixins的特性。
不同点:
React依赖Virtual DOM,而Vue.js使用的是DOM模板。React采用的Virtual DOM会对渲染出来的结果做脏检查。
Vue.js在模板中提供了指令,过滤器等,可以非常方便,快捷地操作DOM。
二、 AngularJS介绍
1. 中文官网:
https://www.angularjs.net.cn/ https://angular.cn/
2. 什么是Angularjs
官方定义:AngularJS是HTML开发本应该的样子,它是用来开发Web应用的。HTML一般是用来声明静态页面的,而AngularJS可以只通过前端技术就实现动态的页面。
AngularJS诞生于2009年,由Misko Hevery 等人创建,后为Google所收购。是一款优秀的前端JS框架,已经被用于Google的多款产品当中。AngularJS有着诸多特性,最为核心的是:MVC、模块化、自动化双向数据绑定、语义化标签、依赖注入等等。
3. Angularjs优点:
(1)模板功能强大丰富,并且是声明式的,自带了丰富的Angular指令;
(2)是一个比较完善的前端MVC框架,包含模板,数据双向绑定,路由,模块化,服务,过滤器,依赖注入等所有功能;
(3)自定义Directive,比jQuery插件还灵活,但是需要深入了解Directive的一些特性,简单的封装容易,复杂一点官方没有提供详细的介绍文档,我们可以通过阅读源代码来找到某些我们需要的东西,如:在directive使用 $parse;
(4)ng模块化比较大胆的引入了Java的一些东西(依赖注入),能够很容易的写出可复用的代码,对于敏捷开发的团队来说非常有帮助,我们的项目从上线到目前,UI变化很大,在摸索中迭代产品,但是js的代码基本上很少改动。
4. Angularjs缺点:
(1)验证功能错误信息显示比较薄弱,需要写很多模板标签,没有jQuery Validate方便,所以我们自己封装了验证的错误信息提示;
(2)ngView只能有一个,不能嵌套多个视图,虽然有 angular-ui/ui-router · GitHub 解决,但是貌似ui-router 对于URL的控制不是很灵活,必须是嵌套式的(也许我没有深入了解或者新版本有改进);
(3)对于特别复杂的应用场景,貌似性能有点问题,特别是在Windows下使用chrome浏览器,不知道是内存泄漏了还是什么其他问题,没有找到好的解决方案,奇怪的是在IE10下反而很快,对此还在观察中;
(4)这次从1.0.X升级到1.2.X,貌似有比较大的调整,没有完美兼容低版本,升级之后可能会导致一个兼容性的BUG,具体详细信息参考官方文档 AngularJS ,对应的中文版本:Angular 1.0到1.2 迁移指南
(5)ng提倡在控制器里面不要有操作DOM的代码,对于一些jQuery 插件的使用,如果想不破坏代码的整洁性,需要写一些directive去封装插件,但是现在有很多插件的版本已经支持Angular了,如:jQuery File Upload Demo
(6)Angular 太笨重了,没有让用户选择一个轻量级的版本,当然1.2.X后,Angular也在做一些更改,比如把route,animate等模块独立出去,让用户自己去选择。
(7)性能:双向数据绑定,在项目越大的时候,性能影响很大。AngularJs采用脏数据检查的方式,跟踪数据的改变,动态改变用户页面的数据。随着绑定数量的增加,性能就会越来越低
(8)表单验证必须写指令来提示错误信息
(9)路由:子路由不可嵌套;必须依赖于JavaScript语言
5.与其他框架的对比
1.与React的对比
a. 虚拟DOM,速度响应很快
b. flux架构,实现服务器端渲染
c.本身只是MVC中的V层,常需要和其他库结合使用。重点在UI上
2.与React的对比
a. 简单
b. 灵活
c.只关注web
d.个人主导的(angular类似生态圈,vue类似社区。vue由国内大牛开发angular谷歌团队开发)
e.服务器端渲染,vue只能借助其他服务器渲染库
三、 React介绍
1.中文官网:https://www.reactjscn.com/
2.什么是React
React 起源于 Facebook 的内部项目,因为该公司对市场上所JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设Instagram 的网站。做出来以后,发现这套东西很好用,就在2013年5月开源了。
React 不是一个完整的 MVC 框架,最多可以认为是 MVC 中的 V(View),甚至 React 并不非常认可 MVC 开发模式;
React 的服务器端 Render 能力只能算是一个锦上添花的功能,并不是其核心出发点,事实上 React 官方站点几乎没有提及其在服务器端的应用;
有人拿 React 和 Web Component 相提并论,但两者并不是完全的竞争关系,你完全可以用 React 去开发一个真正的 Web Component;
React 不是一个新的模板语言,JSX 只是一个表象,没有 JSX 的 React 也能工作。
React主要用于构建UI。你可以在React里传递多种类型的参数,如声明代码,帮助你渲染出UI、也可以是静态的HTML DOM元素、也可以传递动态变量、甚至是可交互的应用组件。
3.React优点:
1、 React速度很快
它并不直接对DOM进行操作,引入了一个叫做虚拟DOM的概念,安插在javascript逻辑和实际的DOM之间,性能好
2、跨浏览器兼容
虚拟DOM帮助我们解决了跨浏览器问题,它为我们提供了标准化的API,甚至在IE8中都是没问题的。
3、一切都是component:
代码更加模块化,重用代码更容易,可维护性高。
4、单向数据流
Flux是一个用于在JavaScript应用中创建单向数据层的架构,它随着React视图库的开发而被Facebook概念化。
5、同构、纯粹的javascript
因为搜索引擎的爬虫程序依赖的是服务端响应而不是JavaScript的执行,预渲染你的应用有助于搜索引擎优化。
6、兼容性好
比如使用RequireJS来加载和打包,而Browserify和Webpack适用于构建大型应用。它们使得那些艰难的任务不再让人望而生畏。
4.React缺点:
1.不适合单独做一个完整的框架
React是目标是UI组件,通常可以和其它框架组合使用,目前并不适合单独做一个完整的框架。React 即使配上 Flux 的组合,也不能称之一个完整的框架,比如你想用Promise化的AJAX?对不起没有,自己找现成的库去。而且第三方组件远远不如Angular多。React本身只是一个V而已,所以如果是大型项目想要一套完整的框架的话,也许还需要引入Flux和route相关的东西。而Angular在这方面提供的东西比React多多了。
5. 与其他框架的对比
与vue的对比
1.组件化方面
1.什么是模块化:是从代码的角度来进行分析的;把一些可复用的代码,抽离为单个的模块;便于项目的维护和开发;
2.什么是组件化: 是从UI界面的角度 来进行分析的;把一些可复用的UI元素,抽离为单独的组件;便于项目的维护和开发;
3.组件化的好处:随着项目规模的增大,手里的组件越来越多;很方便就能把现有的组件,拼接为一个完整的页面;
4.Vue是通过 .vue 文件,来创建对应的组件;
template 结构
script 行为
style 样式
5.React中有组件化的概念,但是,并没有像vue这样的组件模板文件;React中,一切都是以JS来表现的;因此要学习React,JS要合格;ES6 和 ES7 (async 和 await) 要会用;
2.开发团队方面
React是由FaceBook前端官方团队进行维护和更新的;因此,React的维护开发团队,技术实力比较雄厚;
Vue:第一版,主要是有作者 尤雨溪 专门进行维护的,当 Vue更新到 2.x 版本后,也有了一个以 尤雨溪 为主导的开源小团队,进行相关的开发和维护;
3.社区方面
在社区方面,React由于诞生的较早,所以社区比较强大,一些常见的问题、坑、最优解决方案,文档、博客在社区中都是可以很方便就能找到的;
Vue是近两年才火起来的,所以,它的社区相对于React来说,要小一些,可能有的一些坑,没人踩过;
4.移动APP开发体验方面
Vue,结合 Weex 这门技术,提供了迁移到移动端App开发的体验(Weex,目前只是一个小的玩具, 并没有很成功的大案例;)
React,结合 ReactNative,也提供了无缝迁移到 移动App的开发体验(RN用的最多,也是最火最流行的);
与Angularjs的对比
两者的社区基础都很好。
react是facebook的,angular是谷歌的,所以,我们不用担心其社区基础。
angular是一个真正的框架,react是一个库。
react不是框架。 angular自身就继承了各种插件,所以,我们不需要再过多的考虑,它已经提供给你了各种解决办法,而react是比较轻的,只是解决了其中的某个痛点而已。
就性能而言,react更好。
react提出了虚拟DOM这个关键,很好地提升了性能,这一点要比angular强大。
前端UI框架的分析
- 1
一、 移动ui框架
MUI
MUI简介:
MUI是hbuilder集成的一个前端UI库,它是原生的。它里面的所有组件都是以m开头的。最接近原生APP体验的高性能前端框架
2.官网:http://dcloudio.github.io/mui/
3.Pc模拟地址:https://dcloud.io/hellomui/
4.手机模拟二维码:
5.Github: https://github.com/dcloudio/mui/
6.优点:
轻量
追求性能体验,是我们开始启动MUI项目的首要目标,轻量必然是重要特征;MUI不依赖任何第三方JS库,压缩后的JS和CSS文件仅有100+K和60+K。
原生UI
鉴于之前的很多前端框架(特别是响应式布局的框架),UI控件看起来太像网页,没有原生感觉,因此追求原生UI感觉也是我们的重要目标MUI以iOS平台UI为基础,补充部分Android平台特有的UI控件
流畅体验很高,组件丰富;
Mint UI
1.Mint UI简介:
Mint UI是 饿了么团队开发基于vue .js的移动端UI框架,它包含丰富的 CSS 和 JS 组件,能够满足日常的移动端开发需要。基于vue的移动端UI框架。
2.官网:http://mint-ui.github.io/#!/zh-cn
3.pc模拟地址:http://mint-ui.github.io/docs/#/
4.手机模拟二维码:
5.Github: https://github.com/ElemeFE/mint-ui/
6.优点:
• Mint UI 包含丰富的 CSS 和 JS 组件,能够满足日常的移动端开发需要。通过它,可以快速构建出风格统一的页面,提升开发效率。
• 真正意义上的按需加载组件。可以只加载声明过的组件及其样式文件,无需再纠结文件体积过大。
• 考虑到移动端的性能门槛,Mint UI 采用 CSS3 处理各种动效,避免浏览器进行不必要的重绘和重排,从而使用户获得流畅顺滑的体验。
• 依托 Vue.js 高效的组件化方案,Mint UI 做到了轻量化。即使全部引入,压缩后的文件体积也仅有 ~30kb (JS + CSS) gzip。
Cube-UI
Vant UI
Vant UI简介:
vant UI是有赞前端团队基于有赞统一的规范实现的 Vue 组件库,提供了一整套 UI 基础组件和业务组件。通过 Vant,可以快速搭建出风格统一的页面,提升开发效率。
官网:https://youzan.github.io/vant/#/zh-CN/intro
Pc模拟地址:https://youzan.github.io/vant/#/zh-CN/intro
手机模拟二维码:
Github: https://github.com/youzan/vant
优点:
轻量,可靠的小程序UI组件库
Ionic(混合式)
1.ionic简介:
Ionic既是一个CSS框架也是一个Javascript UI库,Ionic 是目前最有潜力的一款 HTML5 手机应用开发框架。通过 SASS 构建应用程序,它提供了很多 UI 组件来帮助开发者开发强大的应用。 它使用 JavaScript MVVM 框架和 AngularJS 来增强应用。提供数据的双向绑定,使用它成为 Web 和移动开发者的共同选择。
2.官网:http://www.ionic.wang/js_doc-index.html
3.Github: https://github.com/ionic-team/ionic
4.优点:
ionic 基于Angular语法,简单易学。
ionic 是一个轻量级框架。
ionic 完美的融合下一代移动框架,支持 Angularjs 的特性, MVC ,代码易维护。
ionic 提供了漂亮的设计,通过 SASS 构建应用程序,它提供了很多 UI 组件来帮助开发者开发强大的应用。
ionic 专注原生,让你看不出混合应用和原生的区别
ionic 提供了强大的命令行工具。
ionic 性能优越,运行速度快。
Framework7(混合式)
1.Framework7简介:
Framework7 是一个开源免费的框架可以用来开发混合移动应用(原生和HTML混合)或者开发 iOS & Android 风格的WEB APP。也可以用来作为原型开发工具,可以迅速创建一个应用的原型。
Framework7最主要的功能是可以使用HTML、CSS和JS来开发移动应用。Framework7是完全免费开源的。
Framework7 并不能兼容所有的设备。只专注于为 iOS 和 Google Material设计提供最好的体验。如果你想开发iOS或者 Android混合应用(Phonegap/Cordova)或者你想开发 iOS 和Google Material 风格的WEB APP,那么Framework7将会是你的首选。
2.官网:http://www.framework7.cn/#get-started
3.模拟地址:http://www.framework7.cn/#get-started
4.Github: https://github.com/framework7io/framework7/
5.优点:
• 容易上手使用
只需要一个基本的HTML布局,并且把Framework7的CSS和JS文件引入即可!Framework7不会强制你写任何自定义的标签,也不会通过JS来生成任何额外的内容。你不需要通过JS或者JSON来写页面,只需要普通的HTML就可以。
• 专注于iOS
Framework7 是一个主要专业于iOS的框架。从一开始,就考虑到如何最方便快捷地实现iOS上各种惊艳的UI组件,以及复杂的动画和灵活的触摸交互。所以Framework7是你实现像素级精度的iOS应用的最佳选择。
• 拥有Material Theme
适用于Android的Material Theme
• 丰富的UI组件
Framework7 有大量可以直接使用的UI组件和工具,比如modals,popup,action sheet, popover, list views, media lists, tabs,side panels, layout grid, preloader, form elements 等。大部分的组件你都完全不需要写任何JS代码。
• 十分棒的各种接近于native效果
手势返回,接近于iOS的滑动操作,动态导航栏,下拉刷新,而且,Framework7 有一个非常强大的”消息“组件,你可以很容易定制并集成到你的app中,然后通过异步数据服务(比如 pusher或者 PubNub)来实现不同用户之间发送消息。
• 自定义方便
Framework7 的所有样式文件都被分类放在了一个个很小的 .less 文件中,所以你可以只选择自己需要的部分文件。
• 原生滚动条
Framework7最大的特点之一就是使用了原生的滚动条。所以你的滚动条会有原生滚动条一样的加速度和回弹,没有任何bug和性能问题。
• 不依赖第三方库
Framework7 不依赖任何第三方库。所以它很轻量、高性能和灵活
• 高性能的动画
Framework7 使用硬件加速的CSS动画以达到最好的性能
• XHR + Caching + History + Preloading
这几个功能的组合可以让你的应用的路由功能变得非常强大。Framework7通过Ajax来加载新页面,并且可以通过缓存配置让页面的加载速度变得非常快。她会在一定的时间内缓存Ajax请求的结果(默认是10分钟),在缓存有效期内不会发送新的请求而是直接从缓存中取出结果。
• 多个视图(分屏)支持,也就是iFrame
Framework7支持多个独立的视图(view)。并且你可以不用写任何JS,只需要在链接上加一个 “data-view” 就可以控制每一个视图。
• 简洁的JS API
使用Framework7不需要学习任何新的知识,她的JS接口非常简洁易用并且功能强大。比如,当你需要弹出一个alert的时候你只需要 app.alert (“Hello World!”)
• 页面动画
Framework7最主要的一个目的就是让你的应用和iOS本地应用有相同的外观和交互体验。并且Framework7是唯一一个提供了1:1精确平滑的页面切换动画的框架。
• Dom7 - 自定义的DOM库
Framework7不依赖任何第三方库,包括dom操作,包括jquery。Framework7有一个自带的高性能dom库 - DOM7。并且,你不需要因为DOM7而学习任何新的知识,因为DOM7的接口和大名鼎鼎的jQuery几乎是一样的。
BUI
1.BUI简介:
BUI 是用来快速构建界面交互的UI框架, 专注webapp开发, 开发者只需关注业务的开发, 界面的布局及交互交给BUI, 开发出来的应用, 可以嵌入平台 ( 微信公众号, 微信小程序, 钉钉, 淘宝, 支付宝等 ), 亦可以跟其它第三方平台打包成独立应用( Bingotouch , Cordova , Dcloud , APICloud , Appcan , 前海圆舟 等), 最终可以全跨平台展示.
2.官网:http://www.easybui.com/
3.pc模拟地址:http://www.easybui.com/
4.手机模拟二维码:
4. 优点:
快速开发
结合BUI Fast插件,可以提高5倍以上的开发速度!
快速上手
一次学习,多平台适用,跟你刚学前端一样开发,只需要5分钟就能快速上手
轻松定制
控件接口开放,UI效果及交互都可以轻松定制
多终端适配
一次开发,多平台适配,完美还原设计稿,在微信,手机浏览器,安卓,IOS保持跟一致的效果.
Weex
1.weex简介:
阿里推出的Native框架,支持iOS、安卓、YunOS及Web等多端部署Weex 致力于使开发者能基于通用跨平台的 Web 开发语言和开发经验,来构建 Android、iOS 和 Web 应用。简单来说,在集成了 WeexSDK 之后,你可以使用 JavaScript 语言和前端开发经验来开发移动应用。
Weex 渲染引擎与 DSL 语法层是分开的,Weex 并不强依赖任何特定的前端框架。目前 Vue.js 和 Rax 这两个前端框架被广泛应用于 Weex 页面开发,同时 Weex 也对这两个前端框架提供了最完善的支持。Weex 的另一个主要目标是跟进流行的 Web 开发技术并将其和原生开发的技术结合,实现开发效率和运行性能的高度统一。在开发阶段,一个 Weex 页面就像开发普通网页一样;在运行时,Weex 页面又充分利用了各种操作系统的原生组件和能力。
2.官网:https://weex.apache.org/zh/
3.Github:https://github.com/apache/incubator-weex?spm=a2c7j.-zh-.0.0.45da1a8eREP5J2
4.优点:
高性能
Weex 使用原生组件和原生模块,来最大化利用原生渲染的性能优势以及平台能力,所有的组件和模块都是可插拔、可扩展的。
跨平台
你可以使用同一份代码编译成不同目标文件分别在 Web、Android 和 iOS 平台上运行。原生的组件和模块在不同平台中有不同的实现,但是它们都提供了相同的接口。
贴近前端生态
Weex 拥抱已有的 Web 生态,你可以使用现代化的前端技术开发移动应用。 Weex 支持了最常用 CSS 样式以及最流行的前端框架,如 Vue 和 Rax,在未来或许还可以支持更多。
被大规模的使用
Weex 已经在许多超级 App 中大规模使用,一共服务了数亿用户。Weex 还衍生出了各种工程化的产品和平台,以供 工业生产使用。
UNI-app
1.uni-app简介:
uni-app是一个使用Vue.js开发所有前端应用的框架,开发者编写一套代码,可发布到iOS,Android,H5,以及各种小程序(微信/支付宝/百度/头条/ QQ /钉钉)等多个平台。
即使不跨端,uni-app同时也是更好的小程序开发框架。详见评测
DCloud公司拥有370万开发者用户,其中uni-app有5万+案例,800款插件,50 +微信/ qq群,并且被阿里小程序工具内置(详见),开发者可以放心选择。
2.官网:https://uniapp.dcloud.io/
3.手机模拟二维码:
4.优点:
uni-app在开发者数量,案例,跨端抹平度,扩展规模,性能体验,周边生态,学习成本,开发成本等8大关键指标上拥有更强的优势。
开发者/案例数量更多
5万+案例,800 +插件,50 +微信/ qq群,更高的百度指数
跨端完善度更高,真正落地的提高绩效
平台能力不预期
在跨端的同时,通过条件编译+平台特有API调用,可以优雅的为某平台写个性化代码,调用专有能力而不影响其他平台。
支持原生代码混写和原生sdk集成。
性能体验优秀
体验更好的混合框架,加载新页面速度重启。
App端支持weex原生渲染,可支持更流畅的用户体验。
小程序端的性能优于市场其他框架。评测
周边生态丰富
丰富的插件市场,各种轮子拿来即用。
支持NPM,支持小程序组件和SDK,兼容mpvue组件和项目,兼容weex组件。
微信生态的各种sdk可直接用于跨平台App。学习成本低
基于通用的前端技术栈,采用vue语法+微信小程序api,无额外学习成本。
开发成本低
不止开发成本,招聘,管理,测试各方面成本都大幅下降。
HBuilderX是高效开发神器,熟练掌握后研发效率至少翻倍(甚至只开发一个平台)。
NutUI
1.nutui简介:
NutUI是一套京东风格的移动端Vue组件库,开发和服务于移动Web界面的企业级前中后台产品。轻量级移动端Vue组件库(用于移动Web的Vue.js 2.0 UI工具包)
2.官网:https://nutui.jd.com/#/index
3.Github: https://github.com/jdf2e/nutui
4.手机二维码模拟:
5.优点:
跨平台,自动转微信小程序组件(稍后上线,敬请期待)
30+ 京东移动端项目正在使用
基于京东APP 7.0 视觉规范
支持按需加载
详尽的文档和示例
支持定制主题
支持多语言(国际化)
支持 TypeScript
支持服务端渲染(Vue SSR)
单元测试加持
配套有基于Webpack的构建工具, 可快速创建已内置本组件库的Vue工程
支持环境
Android 4.0+
iOS 8.0+
支持服务端渲染
PC端框架(响应式)
iview
1.iview简介:
View UI,即原先的iView,是一套基于Vue.js的开源UI组件库,主要服务于PC界面的中后台产品。
2.官网:https://www.iviewui.com/
3.Github: https://github.com/view-design/ViewUI
4.优点:
丰富的组件和功能,满足绝大部分网站场景
提供开箱即用的管理员系统和高阶组件库,极大程度地节省开发成本
提供专业,优质的一对一技术支持
友好的API,自由灵活地使用空间
细致,漂亮的UI
事无巨细的文档
可自定义主题
Layui
1.layui简介:
layui(谐音:类UI) 是一款采用自身模块规范编写的前端 UI 框架,遵循原生 HTML/CSS/JS 的书写与组织形式,门槛极低,拿来即用。其外在极简,却又不失饱满的内在,体积轻盈,组件丰盈,从核心代码到 API 的每一处细节都经过精心雕琢,非常适合界面的快速开发。layui 首个版本发布于 2016 年金秋,她区别于那些基于 MVVM 底层的 UI 框架,却并非逆道而行,而是信奉返璞归真之道。准确地说,她更多是为服务端程序员量身定做,你无需涉足各种前端工具的复杂配置,只需面对浏览器本身,让一切你所需要的元素与交互,从这里信手拈来。
layui 兼容人类正在使用的全部浏览器(IE6/7除外),可作为 PC 端后台系统与前台界面的速成开发方案。
2.官网:https://www.layui.com/
3.GitHub:https://github.com/sentsin/layui/
4.优点:
(1)layui属于轻量级框架,简单美观。适用于开发后端模式,它在服务端页面上有非常好的效果。
(2)layui是提供给后端开发人员最好的ui框架,基于DOM驱动,只要不涉及到交互layui还是很不错的。
(3)该框架不依赖与其他的Js框架,虽然它有的模块需要JQuery
(4)它是基于原生Js的,不需要去了解其他Js的框架或库,减少分析该框架的成本
(5)相比bootstrap来说较轻量。
(6) 有三个独立组件:layer(弹出层) layDate(日期与时间选择) layim(即时通讯)
(7) layui 更偏向与后端开发人员使用,在服务端页面上有非常好的效果。适合做后台框架。
Element UI
1.elementui简介:
是饿了么公司发布的,网站快速成型工具Element,一套为开发者,设计师和产品经理准备的基于Vue 2.0的桌面端组件库。
2.官网:https://element.eleme.cn/#/zh-CN
3.GitHub:https://github.com/ElemeFE/element
4.优点:
(1).一致性 Consistency
与现实生活一致:与现实生活的流程、逻辑保持一致,遵循用户习惯的语言和概念;
在界面中一致:所有的元素和结构需保持一致,比如:设计样式、图标和文本、元素的位置等。
(2).反馈 Feedback
控制反馈:通过界面样式和交互动效让用户可以清晰的感知自己的操作;
页面反馈:操作后,通过页面元素的变化清晰地展现当前状态。
(3).效率 Efficiency
简化流程:设计简洁直观的操作流程;
清晰明确:语言表达清晰且表意明确,让用户快速理解进而作出决策;
帮助用户识别:界面简单直白,让用户快速识别而非回忆,减少用户记忆负担。
(4).可控 Controllability
用户决策:根据场景可给予用户操作建议或安全提示,但不能代替用户进行决策;
结果可控:用户可以自由的进行操作,包括撤销、回退和终止当前操作等。
Bootstrap
1.bootstrap简介:
Bootstrap 是一个用于快速开发 Web 应用程序和网站的前端框架。Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的。Bootstrap 是由 Twitter 的 Mark Otto 和 Jacob Thornton 开发的。Bootstrap 是 2011 年八月在 GitHub 上发布的开源产品。
2.中文官网:https://www.bootcss.com/
3.GitHub:https://github.com/twbs/bootstrap
4.优点:
• 移动设备优先:自 Bootstrap 3 起,框架包含了贯穿于整个库的移动设备优先的样式。
• 浏览器支持:所有的主流浏览器都支持 Bootstrap。
• 容易上手:只要您具备 HTML 和 CSS 的基础知识,您就可以开始学习 Bootstrap。
• 响应式设计:Bootstrap 的响应式 CSS 能够自适应于台式机、平板电脑和手机。更多有关响应式设计的内容详见 Bootstrap 响应式设计。
• 它为开发人员创建接口提供了一个简洁统一的解决方案。
• 它包含了功能强大的内置组件,易于定制。
• 它还提供了基于 Web 的定制。
• 它是开源的。
5.缺点:兼容性
对IE兼容也存在不小的问题,Bootstrap将所有的元素盒模型都设置成了border-box,这是IE混杂模式下的盒模型,光这点就导致了不能兼容IE。此外还用到了大量的H5标签以及CSS3语法,这些语法标签兼容性方面同样存在不小的问题,当然网上存在很多兼容IE的办法,但需要引入其他文件,有些还不小,势必导致加载速度变慢,影响用户体验。对IE6,7的兼容性肯定不好,对IE8的支持也需要一些额外的文件。IE8的媒体查询需要response.js的配合才能实现。Bootstrap不支持IE 古老的兼容模式。为了让 IE 浏览器运行最新的渲染模式下,建议将此 标签加入到你的页面中:
简单灵活可用于架构流行的用户界面和交互接口的html、css、javascript工具集。
基于html5、css3的bootstrap,具有大量的诱人特性:友好的学习曲线,卓越的兼容性,响应式设计,12列格网,样式向导文档。
自定义JQuery插件,完整的类库,基于Less等
Ant Design
1.Ant Design简介:
Ant Design 是一个 UI 设计语言,是一套提炼和应用于企业级中后台产品的交互语言和视觉体系。Ant Design 源自蚂蚁金服体验技术部的后台产品开发。在中后台产品设计中,通常有很多类似的页面和控件,不同的产品会出现不同的规范和实现,给设计师和工程师带来很多困扰和重复建设,降低企业后台的整体研发效率。我们的设计师和前端工程师经过大量的项目实践和总结,希望能沉淀出一套企业级的交互视觉规范,统一中后台项目的前端 UI 设计,屏蔽各种不必要的设计差异和前端实现成本,解放设计和前端开发资源。整套设计规范还在持续整理和完善中。
2.官网:https://ant.design/index-cn
3.GitHub:https://github.com/ant-design/ant-design/
4.优点:
o 提炼自企业级中后台产品的交互语言和视觉风格。
o 开箱即用的高质量 React /vue/angular组件。
o 使用 TypeScript 构建,提供完整的类型定义文件。
o 全链路开发和设计工具体系。
三大版本(React /vue/angular)
Easy UI
1.easyui简介:
easyui是基于jQuery,Angular,Vue和React的用户界面组件的集合。easyui提供了用于构建现代的,交互式javascript应用程序的基本功能。使用easyui,您不需要编写许多javascript代码,通常可以通过编写一些HTML标记来定义用户界面。HTML5网页的完整框架。easyui可以在开发产品时节省时间和规模。easyui非常简单,但功能强大。
2.官网:http://www.jeasyui.com/index.php
3.优缺点:easyui 开发后台真的很方便,功能很强大。UI展示不美观。
JavaScript框架与UI框架结合使用
【Vue】
element(饿了么)https://element.eleme.io/
Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库
Iview https://www.iviewui.com/
一套基于 Vue.js 的高质量UI 组件库
Vuetify https://vuetifyjs.com/zh-Hans/
Vuetify基于vue2.0,为移动而生的组件框架
Vuetify 支持SSR(服务端渲染),SPA(单页应用程序),PWA(渐进式Web应用程序)和标准HTML页面。
不兼容IE9/IE10,部分兼容IE11/Safari9,兼容其他浏览器。
Vux UI组件库https://vux.li/
Vux是基于WeUI和Vue2.x开发的移动端UI组件库,主要服务于微信页面。Vux的定位已经很明确了,一是:Vue移动端UI组件库,二是:WeUI的基础样式库。Vux的组件涵盖了所有的WeUI的内容,还扩展了一些常用的组件。比如:Sticky、timeline、v-chart、XCircle。Vux是个人维护的。但是GitHub上star还是很高的,达到13k。在GitHub上看到对issue的关闭还是很迅速的。Vux文档基本的组件用法和效果都讲解到位了。在vux官网上也展示了很多Vux的使用案例。在微信页面开发中,基本没有太多的bug,开发还是比较顺手的。
Bootstrap-Vue UI组件库
Bootstrap-Vue官网:https://bootstrap-vue.js.org/
uiv官网:https://uiv.wxsm.space/
Bootstrap-VUE提供了基于vue2的Bootstrap V4组件和网格系统的实现,完成了广泛和自动化的WAI ARA可访问性标记。uiv是基于Vue2的Bootstrap 3实现。Bootstrap 4是最新发布的版本,与 Bootstrap3 相比拥有了更多的具体的类以及把一些有关的部分变成了相关的组件。同时 Bootstrap.min.css 的体积减少了40%以上。Bootstrap4 放弃了对 IE8 以及 iOS 6 的支持,现在仅仅支持 IE9 以上 以及 iOS 7 以上版本的浏览器。想当初刚流行响应式网站的时候,Bootstrap是世界上最受欢迎的建立移动优先网站的框架,Bootstrap可以说风靡全球。就算放在现在很多企业网站都是采用Bootstrap做的响应式。Bootstrap-Vue可以让你在Vue中也实现Bootstrap的效果。
其他与vue相关搭配的框架:http://www.fly63.com/article/detial/4768
【React】
Material https://material-ui.com/
世界上最受欢迎的React UI框架。
Ant Design(蚂蚁金服)https://ant.design/index-cn
一个服务于企业级产品的设计体系,基于『确定』和『自然』的设计价值观和模块化的解决方案,让设计者专注于更好的用户体验。
基于 Ant Design 设计语言,我们提供了一套开箱即用的高质量 React 组件,用于开发和服务于企业级中后台产品,除官方的 React 实现,还有 Angular、Vue 的实现。
提供antd资源包、Axure组件库、sketch工具集等工具和资源。
Ant Design Pro:开箱即用的中台前端/设计解决方案
Ant Design Mobile:antd-mobile 是 Ant Design 的移动规范的 React 实现
AntV:简单、专业、拥有无限可能的数据可视化解决方案
dva :基于 redux、redux-saga 和 react-router 的轻量级前端框架。
其他与React相关搭配的框架:https://www.jianshu.com/p/87ec34e59891
【Angular】
Angular Material https://material.angular.io/
Angular的Material Design组件
NG-ZORRO https://ng.ant.design/docs/introduce/zh
这里是 Ant Design 的 Angular 实现,开发和服务于企业级后台产品。提炼自企业级中后台产品的交互语言和视觉风格。开箱即用的高质量 Angular 组件。
使用 TypeScript 构建,提供完整的类型定义文件。
其他与Angular相关搭配的框架:https://blog.csdn.net/dengfangfang11/article/details/80326516
注:本文章有些内容来自网络,如有侵权请联系作者删除!