Ⅰ 电商前端架构设计
什么是前端架构
说到架构,很容易拉出一系列的概念知识点,像系统架构、软件架构、框架等等,这些不是今天探讨的重点,大家可以下去网络来理解。架构的本质是什么?其实也是一种管理。通常我们所说的管理,都是指对于任务和人员的管理,而架构管的是机器和代码。比如说,机器的部署属于运维的物理架构,SOA属于服务架构,那么,前端的架构指什么呢?
长期以来,前端所处的位置是比较偏应用层,很薄的一层,而架构又要求深度和广度,所以之前在前端里面做架构,好比在小水塘里游泳,稍微扑腾两下就到处碰壁。但最近这几年来,随着一些列新的技术和概念的出现,前端的范围被大大拓展了,所以这一层逐渐变得大有可为。
单纯从语言的角度来说,html、js、css是最简单最容易上手的开发语言,不考虑模块化、工具、压缩优化,任何人都可以快速上手,完成一两个功能简单的页面。在规模很小的项目中,前端技术要素彼此不会直接产生影响,因此无需架构相关的思考。由于前端语言这种灵活松散的特点,使得前端项目规模在达到一定规模后,工程问题凸显,成为发展瓶颈,原来孤立的技术要素开始彼此产生影响,各种技术要素彼此之间开始出现关联,要用模块化开发,就必须对应某个模块化框架,用这个框架就必须对应某个构建工具,要用这个工具,就必须对应某个包管理工具……这个时候,需要有人从比较高的角度去梳理、寻找适合自己团队的集成解决方案。而这一系列解决问题的工具和手段就是所谓的前端架构。
架构不等于框架这一点很好理解,相信大家都能够很深入的说明这里的差别,框架是架构的重要组成部分,架构决定框架的选型,框架决定架构的技术路线。架构围绕框架进行一系列的流程工具建设,从而形成完善自动的开发体系。
+框架不等于类库,这里就是很多人困惑的点,你用的什么框架?jquery、underscore、linq、seajs、requirejs等等,每个人都能够列举一大堆。但这个是不准确的,一套编码框架是有一系列的元素组成:开发模式,我们如何来实现代码的职责分离。以前整个前端是mvc中v这一层,而现在前端内部也进行了mvc的逻辑细分,Javascript的MVC框架现在很多,有的强化m、有的强化c。每一个框架其实都有其特点的,并且有越来越多的创新改造,比如现在最流行的是mvvm。有angular、react等等。我们是为了引入mvvc才把他们纳入到我们的开发体系,而不是因为他是一个好用的类库。
通讯,模块化、组件化是前端在推进开发模式过程中的一个过程产物,为了有效的进行组件隔离和独立,现在有各种各样的通信模型出来,不过由于实现简单,代码少,他往往是合入到某个类库里面,但本质也是一个类库。比较成熟的比如:消息总线、事件模拟、缓存中转、flux模型等等。
模板,我们用什么样的方式来集中的处理数据往html的转换过程,这里就不用多展开,这种类库现在太多了,光我们公司就有很多套,大家在代码行、缓存管理、预编译、运算性能、强大的语法等等各个维度不段追求各种极致。
基础类库最后才是传统类库,相信现在已经没有同学会在项目中去约束团队中的dom操作、常用函数、方法、异步化等等各种很基础东西,这个时候我们一般就是引入jq、zepto、underscor这些封装好的东西就行了。核心就是为了改善编码生产力。
对于框架的选型要从两面看,一是看该框架的本领,二是看你们团队的能耐。从经验上给几个点建议:
这里也可以顺便展开聊一下现在前端产品的形态分类:
从这些分类里面,我们这些年派生出了所谓全端和全栈的概念。但本质上怎么走还是要由所在产品的形态来决定。
内容型Web站点 侧重渲染方面的优化,前端逻辑比重小
操作型B/S系统 以数据和逻辑为中心,界面较规整
hybrid内置型,要处理缓存和一些本地接口,包括PC客户端和移动端。现在的本地应用,基于很多考虑,都变成了混合应用,也就是说,开发这个应用的技术,既包含原生的代码,也包含了嵌入的HTML5代码
Web游戏,前端的逻辑非常重,在代码结构上要求非常高的可管理性和更复杂的设计模式。
桌面应用型,现在有一些PC端的混合应用开发技术,比如node-webkit和hex,前者的典型应用是XDK,后者的典型应用是有道词典,此外,豌豆荚的PC客户端也是采用类似技术的,也有一些产品是用的qt-webkit。这类技术可以方便做跨平台,极大减少开发工作量。
大工程应该尽量避开谷歌产品,他的很多技术开源项目都是玩票性质的,GWT、Closure、Darty就是前车之鉴。曾今提出过很多的新技术,到现在还是独家的,变出太大。包括现在angular,喜欢做断崖式升级,做做运营后台系统问题不大,如果是线上系统的话,每次升级就是一次人月神话中的典型焦油坑。
关注应用场景,像刚才说到的boss后台是一种;另外我的平台是否有沉重的历史包袱,需要兼容ie6,还是可以轻装上阵;产品对于seo是什么样的态度?是否需要考虑自适应?或者我的团队足够大,能够各搞一套?;产品特征是强内容还是强交互或者是游戏性。这些都是选择不同框架的主要出发点。
没有最好,只有最适合自己的,基本上,针对每个平台,我们都可以列出一些主流框架,但不意味着你们都能驾驭得住。小马过马,老牛没过膝,松鼠淹个半死,就是这么回事。但无论我们选择什么框架或决定自己动手造轮子,都勿忘初心,技术必须让我们工作生活更为轻松愉快——我们只选择我们能驾驭住的框架,我们不能保证它在一年后是否会过时落后。
而且按照我个人这么多年的经验来看,任何框架都会过时,往往不是因为他不够好,而是因为一定有更好的出来。我们再选择一个框架或者一个类库的时候就要想好,未来我如何抛弃他。至少不能成为我们引入新的框架的绊脚石。现实的工作中很多的团队往往会陷入到年复一年的用今年的新框架去重构去年老框架代码的历史循环中去。对于引入框架如何尽量延长他的生命力,我个人的意见是选择框架时去追求概念,而不是潮流,当我的架构可以接受新的设计概念的时候才去考虑引入新的框架。用设计理念的选择代替框架的选择。之所以这么说是因为我观察到我们部门的后端架构的开发理念跟我进公司的时候是差不多的。更多你可以参考成都网站建设
架构的组成
组件框架
Ⅱ 目前常用的一些前端的框架
目前常用的一些前端的框架如下:
1.Bootstrap
Boostrap绝对是目前最流行用得最广泛的一款框架。它是一套优美,直观并且给力的web设计工具包,可以用来开发跨浏览器兼容并且美观大气的页面。它提供了很多流行的样式简洁的UI组件,栅格系统以及一些常用的JavaScript插件。
Bootstrap是用动态语言LESS写的,主要包括四部分的内容:
脚手架——全局样式,响应式的12列栅格布局系统。记住Bootstrap在默认情况下并不包括响应式布局的功能。因此,如果你的设计需要实现响应式布局,那么你需要手动开启这项功能。
基础CSS——包括基础的HTML页面要素,比如表格(table),表单(form),按钮(button),以及图片(image),基础CSS为这些要素提供了优雅,一致的多种样式。
组件——收集了大量可以重用的组件,如下拉菜单(dropdowns),按钮组(buttongroups),导航面板(navigationcontrol)——包括:tabs,pills,lists标签,面包屑导航(breadcrumbs)以及页升激码(pagination),缩略图(thumbnails),进度条(progressbars),媒体对象(mediaobjects)等等。
JavaScript——包括一系列jQuery的插件,这些插件可以实现组件的动态页面效果。插件主要包括模态窗口(modals),提示效果(tooltips),“泡芙”效果(popovers),滚动监控(scrollspy),旋转木马(carousel),输入提示核枯(typeahead),等等。
Bootstrap已经足够强大,能够实现各种形式的Web界面。为了更加方便地利用Bootstrap进行开发,很多工具和资源可以用来配合使用,下面列举了其中的改笑洞一部分工具和资源。
jQueryUIBootstrap——对于jQuery和Bootstrap爱好者来说这是个非常好的资源,能够把Bootstrap的清爽界面组件引入到jQueryUI中。
jQueryMobileBootstrapTheme——和上面提到的jQueryUI主题类似,这是一个为jQuerymobile建立的主题。如果你想让用Bootstrap开发的网站在手机端也可以优雅访问,那么这个资源对你来说很方便易用。
FuelUX——它为Bootstrap添加了一些轻量的JavaScript控件。FuelUI安装,修改,更新以及优化都很简单方便。
info——Bootstrap提供了自己的几种界面风格,提供了更多的配色选项,并且你可以给每个组件都应用不同的配色。
BootSwatchr——利用这个工具你可以立刻查看主题修改后的效果。对于每一次变动的效果,这个应用都会生成一个唯一的URL方便你与他人分享,你也可以在任意时刻修改你的主题。
Bootswatch——提供大量免费的Bootstrap主题。
Bootsnipp——在线前端框架交互组件制作工具,是一个供给设计师和开发者的基于BootstrapHTML/CSS/JavaScript架构的免费元素。
LayoutIt——通过界面拖放生成器简便快捷地创建基于Bootstrap的前端代码。通过拖放动作将Bootstrap风格的组件加入到你的个人设计里并且可以方便地修改他们的属性,简单便捷。
2、flex
Apache基金会发布了Flex4.8版本,这是Adobe将Flex捐献给Apache基金会后发布的第一个版本
需要注意的是
2014年03月10日,ApacheFlex技术社区发布了全新的ApacheFlex4.12.0版本,该版本是ApacheFlex4.11.0的升级版本,改进的功能包括:
◆支持最新版本的FlashPlayer
◆支持最新的AIR运行时
◆改进了内存占用和性能
◆改善了针对移动平台的组件的样式
◆支持iOS7系统
◆修复了超过80个漏洞[4]
2014年05月10日,Apache对4.12.0版本进行优化改进,发布了Flex4.12.1,新版本加入对全新FlashPlayer及Air运行时的支持,改进对移动媒体查询的支持,并修复20多个Bug。
3、extjs
ExtJS是一种主要用于创建前端用户界面,是一个基本与后台技术无关的前端ajax框架。
功能丰富,无人能出其右。
无论是界面之美,还是功能之强,ext的表格控件都高居榜首。
华丽的界面,灵活的功能,还有开发工具都是配套的,但有个最大的问题,用就得花钱!
4、easyui
easyui帮助你构建你的web应用更加容易。
它是一个基于jquery的插件,开发出来的一套轻量级的ui框架,非常小巧而且功能丰富。
但是她有一个最大的问题就是代码只能找到以前的开源的版本,到了1.2以后的版本源代码都是经过混淆的,如果遇到问题修改起来会非常麻烦!不过一个比较大的优势是开源免费,并且界面做的还说的过去!
5、MiniUI
又一个基于jquery的框架,开发的界面功能都很丰富。
jQueryMiniUI_快速开发WebUI。
它能缩短开发时间,减少代码量,使开发者更专注于业务和服务端,轻松实现界面开发,带来绝佳的用户体验。
使用MiniUI,开发者可以快速创建Ajax无刷新、B/S快速录入数据、CRUD、Master-Detail、菜单工具栏、弹出面板、布局导航、数据验证、分页表格、树、树形表格等典型WEB应用系统界面。
界面做的挺不错,功能也挺丰富,但是有两个比较大的问题,一个是收费,一个是没有源码,说白了,不开源!基于这个开发如果想对功能做扩展就需要找他们的团队进行升级!
6、jQueryUI
jQueryUI是一套jQuery的页面UI插件,包含很多种常用的页面空间,例如Tabs(如本站首页右上角部分)、拉帘效果(本站首页左上角)、对话框、拖放效果、日期选择、颜色选择、数据排序、窗体大小调整等等非常多的内容。
功能非常全面,界面也挺漂亮的,可以整体使用,也可以分开使用其中的几个模块,免费开源!
7、DWZ
DWZ富客户端框架(jQueryRIAframework),是中国人自己开发的基于jQuery实现的AjaxRIA开源框架.
设计目标是简单实用,快速开发,降低ajax开发成本。
欢迎大家提出建议,我们将在下一版本中进一步调整和完善功能.共同推进国内整体ajax开发水平。
毕竟是国产的,支持一下,而且源码完全公开,可以选择一下!不过性能怎么样不敢确定!
8、GWT
Google网页工具包——GWT提供了一组基于Java语言的开发包,这个开发包的设计参考JavaAWT包设计,类命名规则、接口设计、事件监听等都和AWT非常类似。熟悉JavaAWT的开发者不需要花费多大的力气就能够快速的理解GWT开发工具包,将更多地时间投入到GWT应用的开发过程中。
你不用去了解这样那样的javascript框架,通过java你就可以写出功能丰富的界面,可以做单元测试,毕竟是google的产品,严重支持一下!
9、YUI
Yahoo!UILibrary(YUI)是一个开放源代码的JavaScript函数库,为了能建立一个高互动的网页,它采用了AJAX,DHTML和DOM等程式码技术。它也包含了许多CSS资源。使用授权为BSD许可证,基本上没怎么研究过!
YUICompressor倒是挺出名的,这套UI库不知道应用的情况怎么样!
10、Sencha
Sencha是由ExtJS、jQTouch以及Raphael三个项目合并而成的一个新项目。
大公司的框架,并且是几样库的强强联合,值得推荐!
11、Dojo
在国内应用好像不是很广,不过性能上应该没问题。
Dojo是一个用javascript语言实现的开源DHTML工具包。
有多个基金会的支持,包括IBM和SUN,都是软件界的泰斗,值得信赖!
12、ZK
ZK是一套以AJAX/XUL/Java为基础的网页应用程式开发框架,用于丰富网页应用程式的使用接口。最大的好处是,在设计AJAX网络应用程式时,轻松简便的操作就像设计桌面程式一样。ZK包含了一个以AJAX为基础、事件驱动(event-driven)、高互动性的引擎,同时还提供了多样丰富、可重复使用的XUL与HTML组件,以及以XML为基础的使用接口设计语言ZKUser-interfacesMarkupLanguage(ZUML)。
功能丰富,全面,文档齐全,而且升级了很多次,非常值得推荐!
13、OperaMasks-UI
OperaMasks-UI是OperaMasks团队2011下半年打造的一款轻量级前端JS组件库,旨在提供一款学习曲线低、定制性灵活、样式统一,且多浏览器支持、覆盖企业业务场景的前端JavaScriptUI组件库。目前,该团队已将这一产品以LGPL开源协议开放给社区。
文档丰富,功能齐全,而且很容易使用和开发!而且是国产的哟!
14、JavaFX
Sun公司(已于2009年被Oracle公司收购)在2008年12月05日发布了JavaFX技术的正式版,它使您能利用JavaFX编程语言开发富互联网应用程序(RIA)。JavaFXScript编程语言(以下称为JavaFX)是Sun微系统公司开发的一种declarative,staticallytyped(声明性的、静态类型)脚本语言。JavaFX技术有着良好的前景,包括可以直接调用JavaAPI的能力。因为JavaFXScript是静态类型,它同样具有结构化代码、重用性和封装性,如包、类、继承和单独编译和发布单元,这些特性使得使用Java技术创建和管理大型程序变为可能。
Ⅲ web前端开发开发技术架构有哪些
前端的应用非常广泛,基本网站、APP、HTML5小程序等都需要前端开发,所以只要是互联网产品基本都需要前端。
前端程序猿切页面写页面,Web上、H5上的炫酷效果,是前端开发大展身手的地方。最常见的用于前端开发的技术组合是:
HTML+CSS+JavaScript。
web前端是在开发人员中最直接面向产品、面向用户的设计人员,一个开发团队的成果是要靠web前端去展现,因为用户不会去关心后台的处理有多么强大。
后端开发是写后台,各种业务逻辑、数据处理、模块接口、客户端接口等等。后端开发者通常精通于一种Web编程语言和一个数据库管理系统。电商平台点击筛选条件下面为你筛选出来的宝贝的功能以及付款人数数据的变化等都是由后台来实现提供的。
目前web产品交互越来越复杂,用户使用体验和网站前端性能优化这些都得靠web前端去做。
前端开发则是网站的前台代码实现,包括基本的HTML和CSS以及JavaScript/ajax,最新的高级版本HTML5、CSS3,以及SVG等。
前端开发需要学习的技术
1 掌握基本web前端开发技术:HTML、CSS、JavaScript、DOM、BOM、AJAX等,而且要了解它们在不同浏览器上的兼容情况、渲染原理和存在的Bug
2 必须掌握网站性能优化、SEO和服务器端开发技术的基础知识
3 必须学会运用各种web前端开发与测试工具进行辅助开发
4 除了掌握技术层面的知识,还要掌握理论层面的知识,包括代码的可维护性、组件的易用性、分层语义模板和浏览器分级支持等
5 未来web前端开发工程师还要研究HTML5、web视觉设计、网站配色、网站交互设计模式等相关技术
web前端有广阔的发展空间,app、小程序、移动端、pc端等都网站是需要前端技术的开发支持才能够完成,技术门槛相对较低、需求量较大,薪资待遇良好。只要是互联网端的客户界面,就需要前端来制作完成,前端开发的编程量不大,但是需要部分编程,入门简单,但是要学的深入需要一个过程。
Web前端招聘岗位
• 前端开发工程师、Web开发工程师、网页开发工程师、HTML开发工程师...
• H5开发工程师、移动应用开发工程师、App开发工程师、小程序开发工程师...
• JS开发工程师、Vue.js开发工程师、Node.js开发工程师、前端架构师...
• 小游戏开发工程师、数据可视化开发工程师、WebGL开发工程师、WebVR开 发工程师、Web安全工程师...
Ⅳ 前端常用的框架有哪些
前端三大框架,是Angular、React、Vue,这三个框架现在是最为流行也是最多人用的框架。
React:
1.声明式设计:React采用声明范式,可以轻松描述应用。
2.高效:React通过对DOM的模拟,最大限度地减少与DOM的交互。
3.灵活:React可以与已知的库或框架很好地配合。
优点:
1.速度快:在UI渲染过程中,React通过在虚拟DOM中的微操作来实现对实际DOM的局部更新。
2.跨浏览器兼容:虚拟DOM帮助我们解决了跨浏览器问题,它为我们提供了标准化的API,甚至在IE8中都是没问题的。
3.模块化:为你程序编写独立的模块化UI组件,这样当某个或某些组件出现问题是,可以方便地进行隔离。
4.单向数据流:Flux是一个用于在JavaScript应用中创建单向数据层的架构5.同构、纯粹的javascript:因为搜索引擎的爬虫程序依赖的是服务端响应而不是JavaScript的执行,预渲染你的应用有助于搜索引擎优化。6.兼容性好:比如使用RequireJS来加载和打包,而Browserify和Webpack适用于构建大型应用。它们使得那些艰难的任务不再让人望而生畏。缺点:React本身只是一个V而已,并不是一个完整的框架,所以如果是大型项目想要一套完整的框架的话,基本都需要加上ReactRouter和Flux才能写大型应用。
Vue:
Vue是尤雨溪编写的一个构建数据驱动的Web界面的库,准确来说不是一个框架,它聚焦在V(view)视图层。
它有以下的特性:
1.轻量级的框架
2.双向数据绑定
3.指令
4.插件化
优点:
1.简单:官方文档很清晰,比Angular简单易学。
2.快速:异步批处理方式更新DOM。
3.组合:用解耦的、可复用的组件组合你的应用程序。
4.紧凑:~18kbmin+gzip,且无依赖。
5.强大:表达式无需声明依赖的可推导属性(computedproperties)。
6.对模块友好:可以通过NPM、Bower或Duo安装,不强迫你所有的代码都遵循Angular的各种规定,使用场景更加灵活。
缺点:
1.新生儿:Vue.js是一个新的项目,没有angular那么成熟。
2.影响度不是很大:google了一下,有关于Vue.js多样性或者说丰富性少于其他一些有名的库。
3.不支持IE8。
Angular:
Angular是一款优秀的前端JS框架,已经被用于Google的多款产品当中。
它有以下的特性:
1.良好的应用程序结构
2.双向数据绑定
3.指令
4.HTML模板
5.可嵌入、注入和测试
优点:
1.模板功能强大丰富,自带了极其丰富的angular指令。
2.是一个比较完善的前端框架,包含服务,模板,数据双向绑定,模块化,路由,过滤器,依赖注入等所有功能;3.自定义指令,自定义指令后可以在项目中多次使用。
4.ng模块化比较大胆的引入了Java的一些东西(依赖注入),能够很容易的写出可复用的代码,对于敏捷开发的团队来说非常有帮助。
5.angularjs是互联网巨人谷歌开发,这也意味着他有一个坚实的基础和社区支持。
缺点:
1.angular入门很容易但深入后概念很多,学习中较难理解。
2.文档例子非常少,官方的文档基本只写了api,一个例子都没有,很多时候具体怎么用都是google来的,或直接问misko,angular的作者。
3.对IE6/7兼容不算特别好,就是可以用jQuery自己手写代码解决一些。
4.指令的应用的最佳实践教程少,angular其实很灵活,如果不看一些作者的使用原则,很容易写出四不像的代码,例如js中还是像jQuery的思想有很多dom操作。
5.DI依赖注入如果代码压缩需要显示声明。
Ⅳ 什么是前端架构
架构设计的最重要目的是为了进行整体系统概览,以及开发方向指导。
而架构要包含的内容,简单说就是下面四个
1、系统间关系
2、系统内关系
3、应用内架构
4、系统规范与原则
而架构的原则主要是三个方面
1、架构的合适:架构就像衣服,不能太长,也不能太短
2、可扩展的:架构需要充分考虑扩展性
3、持续不断的:架构不是一次性物品,是一个跟着软件生命周期的长期过程
Ⅵ 前端框架
1.前端框架一般指用于简化网页设计的框架,比如,jquery,extjs,bootstrap等等,这些框架封装了一些功能,比如html文档操作,漂亮的各种控件(按钮,表单等等)。
2.使用前段框架可以降低界面开发周期和提高界面的美观性。
3.有些框架比较轻量,比如jquery,有些框架比较重量,比如extjs。一般来说重量的框架会封装更多的功能,比如extjs,封装的grid控件有很强的数据展示和操作功能。
1.对用户的价值:
大部分产品对用户的核心价值是功能和内容提供的,而不是由表现层和交互。譬如支付、电商、新闻、交友。
后端解决有还是无的问题,开天辟地。
前端解决有了以后好用的问题,锦上添花,在竞争激烈的领域确实至关重要。
2.技术广度和难度:
广度上后端工作在服务器领域,能控制的硬件基本没有极限,CPU、存储、网络、集群等等,因此技术领域极广。一个优秀的后端需要掌握或了解大量技术如:并发、业务架构、数据库、几打流行框架、性能调优、分布式计算、集群架构、容灾、安全、运维等等,一层知销和挖透了还有下一层。几十年计算机发展历史中大量的技术沉淀在服务器端。
Web前端一直工作在一个浏览器盒子里,先天不足,能承载的可能性太小,技术广度不足。
深度上,现代计算机领域的难题如大规模负载,海量数据处理,实时计算也是后端的,前端集中在表示层,这一层虽然也很复杂,但能称之为难题的技术几乎没有,也很容易复制。
前端要说深度也不是没有,但这一步需要跨到图形领域(如网页游戏),不是常见场景。
说到底前端代码能控制的硬件确实不如后端,因此在技术上,前端更容易。现在为什么说前端会比后端更值钱呢?那是因为前端对硬件的控制能力提升了(html5odejsmobile),而后端分化得比较厉害,有一批后端专门只写业务逻辑,框架是别人写的,系统架构是别人搭的,服务器跑在云里,连机器物理地址都不知道。世人眼里可能觉得这种写MVC代码的人才斗裤是后端,这种被限制在一个“虚拟盒子”里的后端确实不怎么难上手。
一般而言网上说的互联网行业的技术含量排名大概是这样:
产品经理<设计师<前端<后端<其他更高级职位,比如算法工程师等等。
在广大中小公司,很多产品经理都是不会代码,不会设计。很多技校学艺术设计的毕业生,当上了美工。这些都是真,所以能力低,干的人多,自然搭盯就低。然而,你问Google设计师挣多少了嘛?
门槛低不等于技术含量低。
Ⅶ 前端常用的开发框架有哪些
一、 Web前端框架之Angular 2+
Angular 2+优点解析:
Angular 2+ 的最大优势在于它的流行程度。也有人认为它和 Google 密切相关的名字,会影响团队使用它。Angular 1 的迅速流行是因为那些来自其他交互式应用程序开发环境的人会发现对于开发单页面 Web 应用程序具有相似的模型-视图模式。通过对 Angular 1 进行现代化演变和重新构建框架的某些部分,Angular 2+ 已经真正的爆发了,大量的正式的和非正式培训机构数量都让人印象深刻,开发者有很强的市场竞争力。对于用户来说它有一套用于构建用户界面的丰富组件,这也是本系列中少有的几个框架能够做到这点。
缺点解析:
我们觉得 Angular 框架着重于在单个页面应用程序中创建用户界面并没有处理构建完整的 Web 应用这个更大的关注点,如果不及早确定下来,这将会导致整个项目难以维护,在实际项目中,运行时提供不属于核心框架的技术往往让人觉得不可思议,这大大降低了 TypeScript 对最终开发者的价值。
发展方向:
Angular 5 刚刚发布,这看来是 Angular 已经成功的印证了快速发布版本的承诺,在 Google 的持续支持下,Angular 会越来越成熟。
像许多的大型组织一样,Google 具有多重(分裂)的人格,从外表上看,Angular 团队和那些专注于浏览器标准的团队之间显得很和谐。但我们的观点是,和谐只是一层薄薄的窗户纸。Angular 团队对于 Web 组件和渐进式 Web 应用没有一个真正解决方案。我们认为,业界普遍认可的标准将会在 Angular 框架中会逐步实现,这将会影响到如何更好的构建 Angular 应用将成为一个中/长期的风险。
使用环境:
如果你需要在一个大型的框架内获取技术资源,框架内的技术通常很容易移植;或者你需要在框架中训练开发人员,并且还要有一定的信心,他们会在短期内获得一定的开发能力,这样的话你可以考虑 Angular 2+ 。需要注意的是 Angular1(angular.js)与 Angular2+ 是截然不同的,其中的应用、技术和经验不能直接移植到 Angular2+ 的开发中去。
如果你的 Web 应用能够很好的转化为标准的模型-视图模式,那么你也可以忽略其他直接考虑使用 Angular2+ 。
如果你对 Google Material UX 设计模式满意,那么 Material Angular 是遵循该模式的一种快速、简单且可靠的方式。
二、Web前端框架之React + Rex
React + Rex优势解析:
React 和 Rex 的最大优势在于它们相对简单和专注。做一件事情并把它做好是非常困难的,但这两个库都很有效地完成了它们的目标。虽然对于某些状态容器方法可能是外部的,但大多数开发人员还是可以轻松掌握概念,并了解单向数据体系结构的好处,简化大量的用户界面应用程序。
缺点解析:
React 和 Rex 最大的弱点不是它们是什么,而是它们不是什么。要构建一个功能丰富的 Web 应用程序,你需要许多功能,一旦脱离 React 和 Rex 和其他一些库的核心,你将发现一个非常分散的社区,拥有无数的解决方案和模式,不容易整合在一起。
因此,虽然 React 和 Rex 都是非常专注的库,但缺乏经验的团队还是会很容易地生成不可维护的解决方案,而不是意识到他们所做的选择会导致性能不佳或错误。即使有经验的开发人员也可能意识到,一个松散的架构或惯例可能会在未来困扰他们。
假省钱是一种对自己的欺骗,组织范围内采用 React 和 Rex 将轻松降低无效率问题。没有其他库和模式的广泛约定和标准化,标准化 React + Rex 比较于我们正在采用的 JavaScript 来编写我们的应用程序效率要高。
发展方向:
Facebook 和 React 最近从繁琐的附加专利纠纷中抽离,他们认识到,就像其他项目一样,更广泛的社区能够提高自己的声音。我觉得这有助于 Facebook 意识到他们还不能更好地了解我们,相信我们来引导项目。希望这将继续贯穿项目的特点和技术方向。
很难预测 React 和 Rex 的未来。但是,将库集中在一起,确实会显着提高适应性,大多数React + Rex 模式都会促进一个分离的体系结构,从而可以轻松地进行重构和迭代。两年前,大家喜欢的还是React + Flux,但整个社区很快就拥抱了Rex。思维或模式的其他重大转变可能很容易被采纳。这种关键能力可能会持续到未来。
使用环境:
如果你很少需要手把手指导,并且正在寻找更好的库而不是全面的框架,那么 React + Rex 可能是正确的。在这一过程中,你不仅需要对你的团队和组织的能力保持诚实,还要在你的初始开发过程中,以及在整个应用程序的长期维护过程中保持诚实。
三、Web前端框架之Vue.js
vue.js优势介绍:
渐进式构建能力是vue.js最大的优势,vue 有一个简洁而且合理的架构,使得它易于理解和构建。
vue 有一个强大的充满激情人群的社区,这为vue.js增加了巨大的价值,使得为一个空白项目创建一个综合的解决方案变得十分容易。
缺点介绍:
在模型-视图应用程序和状态容器类型的应用程序之间的互相转换可能会令人感到困惑,即使没有完美包含一个模式到另一个模式的完美转换,但让人感觉希望能维持两个模式的相关性。对于那些期待vue.js完美解决方案,并可能导致难以维护不一致的应用程序的人来说,这至少是令人困惑的。
一个更大的挑战是vue.js依赖于一个单独的人,很明显,其他的项目基本是由一个组织提供支持,但这让人感觉更加有意义,虽然它有一个强大文件的社区和许多有创新的新增项目,但是 vue 核心的开发基本落在一个人身上。
我们很高兴看到 vue 更加容易接受新兴的标准方法,但是它的类似于 Web 组件的模式,而不是真正的 Web 组件,这可能是 vue 所得不偿失的地方。
发展前景:
虽然vue.js有相当广泛的应用,但也很难预测在中期发展中这个势头能持续多久,它不是由一个商业组织直接支持并维护,因此,这很大程度上依赖于维护者的生存能力和继续维护下去的愿望来决定。
它也表现出了一定程度的语言适应能力,并且随着某些模式的落伍和失宠而继续保持自身语言的现代化和时代性,目前没有迹象表明vue.js架构将来无法适应进一步发展。
使用场景:
如果你有一个传统的Web应用程序,并需要一个强壮稳健的应用程序层,那么vue.js 可能是一个很好的选择,它有清晰的模式,即使没有经验的团队也能正确或者错误的使用它。尽管vue UX框架没有开箱即用的功能,但在vue.js上也能大量持续性构建应用,这将有利于你的项目。
Ⅷ 前端开发框架有哪些
1.Bootstrap
Boostrap绝对是目前最流行用得最广泛的一款框架。它是一套优美,直观并且给力的web设计工具包,可以用来开发跨浏览器兼容并且美观大气的页面。它提供了很多流行的样式简洁的UI组件,栅格系统以及一些常用的JavaScript插件。
Bootstrap是用动态语言LESS写的,主要包括四部分的内容:
脚手架——全局样式,响应式的12列栅格布局系统。记住Bootstrap在默认情况下并不包括响应式布局的功能。因此,如果你的设计需要实现响应式布局,那么你需要手动开启这项功能。
基础CSS——包括基础的HTML页面要素,比如表格(table),表单(form),按钮(button),以及图片(image),基础CSS为这些要素提供了优雅,一致的多种样式。
组件——收集了大量可以重用的组绝袭件,如下拉菜单(dropdowns),按钮组(buttongroups),导航面板(navigationcontrol)——包括:tabs,pills,lists标签,面包屑导航(breadcrumbs)以及页码(pagination),缩略图(thumbnails),进度条(progressbars),媒体对象(mediaobjects)等等。
JavaScript——包括一系列jQuery的插件,这些插件可以实现组件的动态页面效果。插件主要包括模态窗口(modals),提示效果(tooltips),“泡芙”效果(popovers),滚动监控(scrollspy),旋转木马(carousel),输入提示(typeahead),等等。
Bootstrap已经足够强大,能够实现各种形式的Web界面。为了更加方便地利用Bootstrap进行开发,很多工具和资源可以用来配合使用,下面列举了其中的一部分工具和资源。
jQueryUIBootstrap——对于jQuery和Bootstrap爱好者来说这是个非常好的资源,能够把Bootstrap的清爽界面组件引入到jQueryUI中。
jQueryMobileBootstrapTheme——和上面提到的jQueryUI主题类似,这是一个为jQueryMobile建立的主题。如果你想让用Bootstrap开发的网站在手机端也可以优雅访问,那么这个资源对你来说很方便易用。
FuelUX——它为Bootstrap添加了一些轻量的JavaScript控件。FuelUI安装,修改,更新以及优化都很简单方便。
info——Bootstrap提供了自己的几种界面风格,提供了更多的配色选项,并且你可以给每个组件都应用不同的配色。
BootSwatchr——利用这个工具你可掘宏卖以立刻查看主题修改后的效果。对于每一次变动的效果,这个应用都会生成一个唯一的URL方便你与他人分享,你也可以在任意时刻修改你的主题。
Bootswatch——提供大量免费的Bootstrap主题。
Bootsnipp——在线前端框架交互组件制作工具,是一个供给设计师和开发者的基于BootstrapHTML/CSS/JavaScript架构的免费元素。
LayoutIt——通过界面拖放生成器简便快捷地创建基于Bootstrap的前端代码。通过拖放动作将Bootstrap风格的组件加入到你的个人设计里并且可以方便地修改他们的属性,简单便捷。
2.Fbootstrapp
Fbootstrapp基于Bootstrap并且提供了跟Facebookiframeapps和设计相同的功能。包含用于所有标准组件的基本的CSS和HTML,包括排版、表单、按钮、判逗表格、栅格、导航等等,风格与Facebook类似。
3.BootMetro
BootMetro框架的灵感来自于MetroUICSS,基于Bootstrap框架构建,用于创建Windows8的Metro风格的网站。它包括所有Bootstrap的功能,并添加了几个额外的功能,比如页面平铺,应用程序栏等等。
4.Kickstrap
Kickstrap是Bootstrap的一个变体。它基于Bootstrap,并在它的基础上添加了许多app,主题以及附加功能。这使得这个框架可以单独地用于构建网站,而不需要额外安装什么。你需要做的仅仅是把它放到你的网站上,然后用就可以了。
App是一些页面加载完成之后加载运行的JavaScript和CSS打包文件。默认加载的app有Knockout.js,Retina.js,FirebugLite,andUpdater,你也可以自行添加更多的app。
选择不同的主题可以让你的网站在众多Bootstrap构建的类似网站中显得与众不同。
附加功能是一些用来扩展BootstrapUI库的附件,它们的语法基本相同或者相似。
Ⅸ 前端常用的框架有哪些
在Web前端开发中,适时地使用一些框架,对于我们日常的开发,可以说是事半功倍。那么,常用的Web前端框架有哪些呢?程序员常用的Web前端开发框架如下:
1、Bootstrap
Bootstrap流行的CSS框架,它是最早的Web前端框架,Bootstrap提供了许多实例来帮助入门。使用Bootstrap可以将不同的组件和布局组合在一起,从而创建有趣的页面设计,还提供了大量详细的文档。
2、QUICK UI
QUICK UI一套完整的企业级web前端开发解决方案,由基础框架、UI组件库、皮肤包、示例工程和文档等组成。使用QUICKUI开发者可以极大地减少工作量提高开发效率,快速构建功能强大、美观、兼容的web应用系统。
3、MDC Web
Material Components for the web(MDC Web),谷歌为Web设计的全新前端框架。MDC Web帮助开发人员执行Material Design,组件由谷歌的核心工程师团队和UX设计人员开发。这些组件可以建立可靠的开发工作流程以构建美观且功能强大的Web项目。
4、Pure
Bootstrap,Patternfly和MDC Web功能非常强大的CSS框架,但非常繁琐复杂。如想要一个轻量级的CSS框架建议尝试Pure.css,本身更接近于CSS编程,但又可以帮助构建一个不错的网页。Pure是具有最小占用空间的轻量级CSS框架由Yahoo开发根据BSD许可是开源。
5、Foundation
Foundation声称是世界上最先进的响应式前端框架。它提供了用于构建专业网站的高级功能和教程。许多公司,组织都使用该框架,并且该框架具有大量可用的文档。
6、Bulma
Bulma基于Flexbox的开源框架可根据MIT许可证开源。一个非常轻量级的框架,只需要一个CSS文件。Bulma拥有简洁明了的文档可轻松选择想要的主题。还具有许多Web组件可以在设计中使用它们。
7、Skeleton
轻量级框架Skeleton。Skeleton库只有大约400行,且该框架仅提供一些基本的CSS框架组件。Skeleton还是提供了详细的文档来帮助快速上手。
8、Materialize
Materialize 是一个基于 Material Design风格的一个现代化的响应式前端框架,解决了最繁重的工作,结合的自定义组件为提供默认的样式。Materialize的文档页面非常全面很容易遵循。其组件页面包括按钮,卡片,导航等。
9、Bootflat
Bootflat是从Twitter的Bootstrap派生的开源CSS框架。与Bootstrap相比Bootflat更简单更加轻量级。大部分都是图像没有太多的文字。
10、PatternFly
PatternFly是Red Hat的开源CSS框架,和Bootstrap不同的是Bootstrap是为那些想要创建漂亮网站的人而设计,而PatternFly主要专注于企业应用程序开发人员提供诸如条形图、图表、导航之类的组件,实际上Red Hat就是使用它创建了OpenShift。除了静态HTML,PatternFly还支持ReactJS框架,这是Facebook开发的流行JavaScript框架。PatternFly具有许多适用于企业级应用程序的高级组件,如条形图,图表,模式和布局。
11、flex
Flex目前还在孵化阶段,还不是Apache的正式项目,Flex4.8也不是一个正式的Apache版本。,该版本标志着Flex新时代的开始,Flex的未来将由社区来驱动而不是由一个公司驱动。开发者可以通过贡献代码来帮助改进Flex,如修复bug、增加功能等。
以上就是分享的Web前端开发常用的一些框架。程序员们可以根据自己的业务需求选择简洁直观、功能强大的前端开发框架,让自己的工作更迅速简单,提高开发的效率。