威尼斯人线上娱乐

【威尼斯人线上娱乐】顺势而为,18个公认的

5 2月 , 2019  

顺时而为,HTML发展与UI组件设计发展

2016/01/22 · HTML5 ·
UI

原稿出处:
腾讯ISUX   

在阅读本文从前,提出先读书此前的一篇小说:“面向设计的半封装web组件开发”,便于精晓小说的局地应答。

 
在软件工程中系统的架构也在乘机规模不断的形成,最初的面向进度的软件开发到现行面向对象的软件开发。软件工程也逐步进入组件化开发阶段。然则前端的组件化的迈入一直走下坡路,传统的桌面开发早已经跻身组件化开发阶段。

原创:W3C中文教程(W3Schools.wang)

 

一、现状

1. 前端发显示状
前者这几年的进化都是鲜明的,可是,即使依照已经出生投入实践的专业梳理下,会发觉,基本上都是偏后的JS开发规模的,比方说Node.js下的前后端分离,MV*库,React.js,种种包管理工具及前端集成解决方案等。

而往前,Shadow DOM, Web
Components规范和标准即便也应运而生了,给我们收看了体系化和前途,但出于兼容性的难点(参见下表),或者可能不够可以集体的强势引领,我们在实际的花色中少见见到。

 

就算有webcomponents.js诸如此类的polyfills处理,也唯有IE11+才完全协助。

难道说我们就那样干等着,直到Web
Components一统江山的时候,大家才起来在HTML侧发力吗?这么多年HTML5的进化就那样白费了?大家做PC端的就因为一些过时的浏览器而止步不前?

2. UI组件现状
干练的团协会都有谈得来的一套组件库,以便各个门类来的时候,都能从容应对。

为了可以从容应对,我们一定要考虑周详,公司级,能应对大型项目,各样繁复气象,充裕发挥组件的复用性。往往最后,会让组件变得相比较重,逻辑相比复杂,API数量也正如多。大家不妨可以看下kissy
5.0的DatePicker的机件使用示意:
威尼斯人线上娱乐 1

一旦我们单看作用,确实很有力,禁用日期可以擅自自定义,可以轻松定义各类操作栏是还是不是出示,确实是信用社级的web组件,看上去能适应各样复杂现象。

而是,在我看来,难点却卓殊多。

  1. 诸君静下心来想想看,我们所经历的品种,是否多数都不复杂,大家是否有必不可少选拔公司级的大而重的出品?就好比你一个浮现性为主的网站,却采用AngularJS
    MVVM来高大上。截趾适屦,敦云其愚。
  2. 看上去能适应各个现象,但是,眼下现代web技术急速发展,UI层变化方兴日盛,你确定你这么些组件能跟得上那个生成。怕是最终衍变成,组件协助跟不上,而否定了设计师的片段想法。太阿倒持了!
  3. 代码中冒出了GregorianCalendar,
    GregorianCalendarFormat如此这般的章程或对象,请问在座的诸位你精晓那是个什么样鬼吗?你驾驭她是干嘛用的吗?学习成本啊~~
  4. render, showWeekNumber, showClear, showToday,
    disabledDate那个API名称我们有没有觉得在什么地方见过?
    “好像是在何处见过?”
    “好像个鬼啊,是事先平昔就没见过!”
    当今大家闭上眼睛,还记不记得那个API名称是何等?若是七日之后吧,你还记不记得。是否您要去翻API文档了?使用资金啊~
  5. 设想那样的光景,项目启动了,负责组件的前端和担负作业的前端一起开工,哪个人知突然,负责组件的前端的老伴突然要临盆,不得不去陪产。此时承担作业的前端该怎么搞?会不会像那样同样在心底马景涛先生:“时间选取组件还没完毕,那里的日期交互看重组件,那不是丢锅给自家接吧!?”可以见到,多人的付出被牵制了!三种结果,一是友好上,二是那块工作间歇。
    由此大家发现没,组件和事情耦合在共同,不便利协作啊。比方说上面截图代码的picker.on('select', function(e) {});,组件不弄好,根本就没办法使用啊!要么就融洽先搞搞,回头再改,都是很烦的。

 
Web1.0一时前端首如果HTML与CSS的满世界,JS则是不难的协理工具而已。到了Web2.0时期前端开头走向以AJax技术为骨干轻量级别交互,以JQuery、ExtJS、Dojo代表前端类库(后双方为框架)为导向的用度开首迅猛发展。JQuery在前端领域叱咤风浪多年,人们都苦恼认为JQuery长驱直入。而ExtJS、Dojo在UI组件上做的一帆风顺,对于当下的管理类Web系统来说也是福音。同时也看见前端组件化初见苗头(达成了有的起码的组件化开发格局,如:jQuery的恢弘…),人们都干扰发现到前者组件化带来的赫赫好处。


读书目录

二、探索

幸亏由于当时有那些不如意的现状,所以自己就一向在考虑,有没有怎么着措施可以做出改变,不自然是大跨越式的一步到位,至少能指明茅塞顿开的另一条路。

大家仍然拿时间选用器举例,想想看,HTML5有没有为大家带来native的UI组件?对啊,有的,应该都晓得的:

<input type=”date” >

1
<input type="date" >

date类型的input输入框,天然可以选择时间。
威尼斯人线上娱乐 2

咱俩得以运用min/max质量限制可以接纳的时辰限制,使用value规定当前接纳日期。也就是说,从原本功用角度而言,原生的date岁月选拔可以满意绝半数以上的业务要求。

那么些符合标准,业界规范的HTML特性假设可以平素在实质上项目中接纳该多好啊!

可是,难题在于,浏览器原生的界面往往跟大家站点的统筹风格有些不协调,说白了,就是设计师认为丑,而且不可能自由定义某些职能,例如清除。

再有一个很现实的题目是包容性,包蕴IE11在内的IE浏览器都没有type="date"零件行为,威尼斯人线上娱乐 3
这几个补刀间接剐在了心底。

怎么做吧?

大家那儿不妨梳理下:

<input type=”date” min=”2016-01-01″ max=”2016-12-31″
value=”2016-02-14″/>

1
<input type="date" min="2016-01-01" max="2016-12-31" value="2016-02-14"/>

type/min/max/value这个原生标准的HTML属性并不曾难点,有问题的只是点击出现的格外长相简陋的取舍浮层。所谓因事为制,哪个有难题就搞哪个,大家要是想办法把丑陋的浮层搞美丽就足以了。

设想到包容性,大家实在可以和价值观的时光选拔器组件一样,对浮层内容开展自定义,注意,大家仅自定义浮层,HTML依然原本的。

大家创设一个名为DateTime的实例方法,理想情形下,我们借使绑定开头化一下,类似这样:

new DateTime($(“[type=date]”);

1
new DateTime($("[type=date]");

接下来duang,时间选用器浮层直接美化成设计师必要的容貌,那该多完美啊!

梦想总是有些,万一落成了吗?

既然如此使用自定义的浮层,那就须求干掉浏览器原生的浮层,怎么弄呢?大家可以让inputreadonly只读,这样,就不会现出原本的输入框了。

input框内置的三角形(须要隐藏)和斜杠(须要采纳短横)该怎么做呢?
那部分是接济自定义的,类似:

::-webkit-clear-button, ::-webkit-inner-spin-button,
::-webkit-calendar-picker-indicator { display:none; }
[type=”date”]::-webkit-datetime-edit-text { color: transparent; }
[type=”date”]::-webkit-datetime-edit-text::before { content: ‘-‘;
position: absolute; } ::-webkit-datetime-edit-text,
::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field,
::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field,
::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-ampm-field
{ background: none; }

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
::-webkit-clear-button,
::-webkit-inner-spin-button,
::-webkit-calendar-picker-indicator {
  display:none;
}
[type="date"]::-webkit-datetime-edit-text {
  color: transparent;
}
[type="date"]::-webkit-datetime-edit-text::before {
  content: ‘-‘;
  position: absolute;
}
::-webkit-datetime-edit-text,
::-webkit-datetime-edit-year-field,
::-webkit-datetime-edit-month-field,
::-webkit-datetime-edit-day-field,
::-webkit-datetime-edit-hour-field,
::-webkit-datetime-edit-minute-field,
::-webkit-datetime-edit-ampm-field {
  background: none;
}

就可以把webkit下的日子输入框改造成大家想要的样板了,而IE等不协助date输入框的浏览器,保持原来的旗帜就足以。

于是,通过CSS和JS的合作,我们就足以兑现基于原生HTML5规范的时间选取器了。

“稍等,怎么就落到实处了?”有人也许会有这么的问号。

上面那段是自个儿年轻时候使用过的一套组件库的起始化示意:

new DatePicker($(“#date”), { type: “date”, initDate: .., beginDate: ..,
endDate: .., onSelected: $.noop });

1
2
3
4
5
6
7
new DatePicker($("#date"), {
  type: "date",
  initDate: ..,
  beginDate: ..,
  endDate: ..,
  onSelected: $.noop
});

对比:

<input type=”date” min=”2016-01-01″ max=”2016-12-31″
value=”2016-02-14″>

1
<input type="date" min="2016-01-01" max="2016-12-31" value="2016-02-14">

我们是还是不是可以找到之间的关系?没错,那位同学好生眼力,HTML中的type属性对应JS中的type
API, value属性值对应initDate值,
min/max独家对应beginDate/endDate。其实里面贯彻跟传统的组件没什么差异。

onSelected【威尼斯人线上娱乐】顺势而为,18个公认的。呢?onSelected是个回调方法,解读下就是当选取日期未来,干嘛干嘛。其实大家原生的input框有接近的事件,什么呢?change事件。既然,大家那里运用的是原生的HTML输入框,那大家就足以应用其原生的change事件。所以,什么onSelected威尼斯人线上娱乐 ,回调,完全不必要。大家如果在组件内部,当赋值的同时trigger下原生的change事件。

于是乎,我们就拿走了一个HTML是原生,API也是原生,事件也是原生,UI自定义的年华选用控件。真真切切将HTML5应用到了实在项目中,同时,即便是是10年前的IE6也是足以匹配。

完美!

然则,一定会有小伙伴提议猜疑,你那个成效也太局限了啊,即便赶上特殊须求,例如,所有的星期日都不可以拔取,你怎么整?

OK,此时就须要“面向设计的半封装web组件开发”的那篇文章出马了?

故此有人会提议地方的猜忌,照旧遵从了传统组件的挂念格局去思维。没错,确实有些项目标时光组件必要周末不可以选拔。不过,你现在做的那么些项目,有那么些要求呢?你美好思考。

CSS3现行提升越来越成熟,UI层的变型更是快速和不可预见,那种倾向,必要大家的UI组件要轻柔,灵活,随时能够依照上层变化做调整。而那种妄图考虑各个现象,代码又大又冗余的零件开发格局已经越来越不适于未来的时尚了。

如果您真正蒙受“周末都不可以拔取”的必要,我告诉你咋办?自定义一个名为”date-no-weekend“的type连串,内部的JS代码当然该重用的任用,该模块化的模块化:

<input type=”date-no-weekend”/>

1
<input type="date-no-weekend"/>

要么觉得难以接受,仔细品尝前面那句话:组件要面向设计,落地项目,追求人格。

好,大家后日兑现了根据HTML5时间选取组件落地执行生产,加以推广,势必对HTML5正式在境内的就学与推广带来支持。

唯独,就一味一个组件,势单力薄,怕是针落大海,激不起一点水花,其余些组件是不是也能够找那种面向HTML的思路去支付呢?

有!

报告我们,QQ公众平台的UI组件种类贯穿始终,就是依据面向HTML标准支付的思辨贯彻,同时借助面向设计的付出考虑,让组件极致体验,同时轻便很快,风一吹就可以飞到天上去。

 
到了Web2.0后半页移动网络的便捷崛起,交互从传统的PC转到移动端。而移动端对于交互性与特性的须要也要比PC端强的多。同时浏览器的信息量也尤其大,传统的框架与类库已经不堪重负。已经力不从心有限匡助前端维护性与品质。

用作开发者,我们需要驾驭一些不菲的UI开源框架资源,它们能够匡助大家更快更好地促成部分现代化的界面,包罗部分移动装备的网页界面风格设计。本文汇总了眼前18个公认的世界一级UI开源框架(附官网、Github以及分级的教程),欢迎我们学习应用。

  • 1.1 jQuery mobile flat-ui
    主题
  • 1.2jQuery mobile Bootstrap
    主题
  • 4.1 GMU  
  • 4.2 Clouda+ 
  • 4.3 efe
      
  • 5.1 Spirit
  • 5.2 Frozen
    UI

三、实践

QQ公众平台的UI组件完毕,和价值观达成是一心两样的宏图思想。从JS层进一步往下沉淀了一个层次,基于原生的HTML达成。

多说无益,眼见为实(狠击下边)。

demo-点击那里-demo

点击上边的demo,
进入一个平凡的静态页面,引入眼帘的是一个家常的表单,里面的UI都是系统默许的,HTML功效也是原生的。

例如:

  • title提示
    威尼斯人线上娱乐 4
  • 慎选日期
    威尼斯人线上娱乐 5
  • 点击提交的表单验证
    威尼斯人线上娱乐 6

UI即使原始,不过意义却是很周全的。

例如:

  • 子女款式、城市以及运费险对价格的震慑
    威尼斯人线上娱乐 7
  • 表单提交事件
    威尼斯人线上娱乐 8

下边,见证奇迹的时刻到了,点击demo页面(下图所示)的按钮进行QQ公众平台UI组件资源的加载和初阶化:

威尼斯人线上娱乐 9

结果,一弹指间,上面原始粗糙的界面一下子变为了那样子:
威尼斯人线上娱乐 10

妥妥的丑小鸭变成了白天鹅,包罗此前原生的HTML功效。

例如:

  • title提示
    威尼斯人线上娱乐 11
  • 选用日期
    威尼斯人线上娱乐 12
  • 点击提交的表单验证
    威尼斯人线上娱乐 13

而,最最关键,和最最神奇的事务是:大家只有是引入了QQ公众平台的UI组件,对,仅仅是引入和某些初步化,没有动此前一点点一丝丝的作业JS.
但是,之前的各类互动作用,却完全不受影响,反而感受更上两层楼!

请看下边的gif截图演示:
威尼斯人线上娱乐 14

真是一场意外之旅,发现没,面向HTML开发,实际上不是简单推向了HTML5等现代web技术诞生实施,对大家的付出流程等也推动了了不起接济——UI组件可以和事情JavaScript完全分离,可以完毕无缝过渡。就是因为任何组件种类基于原生HTML开发的宏图意见,让UI组件回归了其本质或者说本职成效——UI.

 
人们就从头思考前端已经早已不是类库能一挥而就的题材了,前端已经改成一个工程化的标题。第一代前端框架涌现出来,以Knockout.js、Ember.js、Backbone.js为表示。第二代前端框架:以Angular.js、React.js、Vue.js、Avalon.js。第二代前端框架大致以MVVM为导向,除了React.js。以React.js与Vue.js为代表的前端框架已经运用了组件化的思绪开展开发软件,围绕组件举办业务架构。

  1. Bootstrap

 

四、优势

下边计算上面向HTML的UI组件开发的优势。

1. HTML/CSS侧的现世产物落地实施
据悉HTML标准来开发大家的UI组件,通过技术超过各样包容难题,使得大家前端技术在HTML层也乘上了现代web技术的快车,标准的HTML5正式和质量提前很多年在广受众的历史观PC页面显示,我认为是丰富有含义的一件工作。

2. 避让了观念组件的成百上千标题

  1. 更强的语义化,可访问性,SEO等;
  2. 学习和应用花费低;
  3. 在意HTML控件本身,而不是组件;
  4. 可以四遍性全局处理;

①. 语义化,可访问性

毕竟是根据原生HTML来开发的,这一块肯定杠杠的。

诸如,时间拔取:

<input type=”date”>

1
<input type="date">

明显语义要比上面的text连串要好:

<input type=”text”>

1
<input type="text">

又如按照checkbox/radio类型的input框模拟的单复选框自然要比传统div要素模拟的甭管语义、设备可访问性都要高很多。

②. 更低的求学和动用资金

不会油可是生就如GregorianCalendar,
GregorianCalendarFormat一眼不晓得干嘛的对象和办法。

不须要记住类似showWeekNumber, showClear, showToday,
disabledDate那般千差万其他JS
API名称,记住标准的HTML5属性即可,只要记住两次,生平受用,放心,不会变的,HTML5文案已经杀青了。

而上学开支低对于跨团队合作卓殊有辅助。你说kissy上心灵,依然只要求写写规范HTML就OK上心灵!

其它社团同学愿意使用你的东西,插足快,完成效益好,咱们都开玩笑。反之,API千差万别,每便使用都要去翻文档,肯定影响协作。

而是,实践下来,有少数读书开销我没考虑到,就是更换思维方式的就学花费。实际上即使面向元素的HTML元素开发就足以了,然而有蒙受小伙伴,照旧遵守老的想想方式,在扭转的UI组件元素上做小说。
威尼斯人线上娱乐 15

③. 专注HTML控件本身,而不是组件

举个例证,日期拔取器,当日期修改了,大家要干嘛干嘛,直接:

$(“input”).change(function() {});

1
$("input").change(function() {});

想要修改日期范围,直接:

$(“input”).attr({ “min”: “2015-12-27”, “max”: “2016-12-27” });

1
2
3
4
$("input").attr({
  "min": "2015-12-27",
  "max": "2016-12-27"
});

UI组件会活动同步。没有其余组件相关的JS代码,也没有怎么故弄玄虚,没有所谓的高屋建瓴,全是很简短基础的HTML操作。是或不是那样的付出反而很便捷,连小白用户也能上手?

于是,在多协会共同合作开发的时候,前端开发的快慢并不会受UI组件开发影响,面向HTML,专心自己业务支付就足以了。

承担组件开发的前端去休陪产假了,负责作业的前端,直接依据标准的HTML控件元素是贯彻团结的事务逻辑,什么回调啊都直接动用原生的事件和方法。等担当组件开发的前端,回来了,哪怕拖了个把星期,只要组件已毕,公共JS一起首化,业务JS没有其他改动,无缝对接。

于是乎,落成了一个听上去很了不可的事物:前者分离

那对于一切开发流程和频率也拉动了赫赫的晋级。

不仅如此,厂子里有不少支出,负责内部项目,会写JS擅长业务效用已毕,但是,UI那块是个软肋。OK,此时,大家那边面向HTML开发的UI组件系列就是其救星,对吧,直接引入CSS和JS,不难全局开端化一下(可能还有一对简练的微调),结果,页面立马高大上了,是还是不是很有用!

④. 可以三次性全局处理

观念达成,每个具体业务的台本里面要参与UI组件的现实性API参数设置。而面向HTML的贯彻,API落地与具象的事情页面,于是乎,只要在档次的common.js中全局开端化一下,如下拉Select.init(),
具体的作业JS文件(绝超过半数情景下)中就无需再冒出UI组件相关的JS代码。

UI层的JS代码和事务层JS代码分离,完结更为的「前端分离」,去耦合。对于随后的有限支撑、升级等要比传统组件更自在。

Angular.js 1.x架构图

威尼斯人线上娱乐 16

Bootstrap,来自 推特,是时下最受欢迎的前端框架。Bootstrap 是依照HTML、CSS、JAVASCRIPT 的,它简洁利落,使得 Web 开发尤其便捷。

    纯粹的总括一下活动web开发框架,移动web开发框架有jQuery Mobile
、Sencha Touch等等,他们都来源于web开发,是成熟的框架,jQuery
Mobile出自于jQuery家族,Sencha Touch来自于ExtJS。jQuery Mobile 和Sencha
Touch都是相比早熟老牌的框架,项目中也有使用。国内也有商家,像BAT巨头也在探索和促成了适合自己的移动web框架。

五、结果

面向HTML的UI组件开发贯穿于一体QQ公众平台UI组件连串。包蕴地点没出现过的range范围采纳,自定义滚动效应等等。

从实施的结果来看,前端同事啧啧称誉过(功用层),大家统筹主题那边leader希望那套可以推到其余team去(体验层)。

世家有趣味,不妨速度进入QQ公众平台,也来体验下,欢迎举报以及提议宝贵意见。

Avalon.js 1.x架构图

威尼斯人线上娱乐 17

Github:

 

六、结语

一个type="date"input框实际上就是一个极端的Web
Components,一小段`就是一个可以被import`的模块,然后就可以出现界面复杂的零部件效果(shadow
DOM),而API就是HTML的原生属性。

QQ公众平台UI组件离Web
Components到底有多少路程?要是说传统的web组件距离是1条长安街的话,那QQ公众平台UI组件唯有0.5条长安街的距离。

HTML和API利用了原生的Web Components格局,非Web
Components形式的只是是自定义的浮层这一块,不过,设计思想和思路都是朝着Web
Components格局发展的。

换句话说,即使不能一步直达Web
Components,不过,大家可以利用HTML的上扬,通过一些方针和统筹,对UI组件进行局部革命,让其在朝着Web
Components前进的征程上迈出一大步。

正文主讲设计思想,至于具体的技术细节,往后有机遇会渐渐享受,可以讲的点万分可怜多,越是不难的制品越是必要丰富的积累。

以上,希望本文的内容可以对我们有某些启示。

1 赞 1 收藏
评论

威尼斯人线上娱乐 18

Vue.js 1.x架构图

威尼斯人线上娱乐 19

汉语教程:http://w3schools.wang/bootstrap/bootstrap\_tutorial.html

 

React.js 15.x架构图

威尼斯人线上娱乐 20

 
在前端进入组件化的等级的还要也境遇了众多的标题,这几个标题在传统的桌面端早已经小意思。前端组件化主要面对以下难点:零件与子组件通信可视化组件的外观可维护性复杂组件的可维护性组件与组件的隔离性等。零件化意在化解业务开发人士在付出业务时无需关切组件内部细节举办火速的施用组件举行统筹工作,组件化能够说是对面向对象编程的全体兑现。

  组件化对Web开发具有源远流长的震慑,直接影响到Web的规划、维护、测试,组件的切分,组件的开销。传统的网页开发格局将被推倒重来。新型的零部件也将另行发明,重新发明轮子是不可逆袭的。同时组件也要兼任各种消费端的须求。组件由单纯服务于PC转向其余扶助浏览器的平台。

 
近日来看,组件化的的落成分两路:以模板驱动JS为代表的Angular、Vue、以JS驱动的React,同时以Web
Component原生浏览器特性使得的框架也在崛起Polymer、Nova。不得不说原生或协作原生的组件化才是鹏程。

  1. Semantic-ui

1、jQuery Mobile  

 

    jQuery
Mobile框架可以接济你快速支付出协理二种运动装备的Mobile应用用户界面。jQuery
Mobile最新版本是1.4.0,默许大旨选取扁平化设计风格。jQuery
Mobile1.4.0主要重视于品质和控件方面的立异。除了全新的默认主旨和SVG图标,还新增了开关控件、通用过滤器、箭头弹出框、滑动提示框等一层层作用,更是集成了jQuery
UI的Tab部件。jQuery
Mobile继承了jQuery的优势,并且提供了丰硕的适合手机使用的UI组件。jQuery
Mobile还有许多的第三方增添。

 

Web应该有着原生可视化程序的这个特征?

  组件化:

 
组件化是主导之中主旨,为何要组件化?之前俺们在Web端做的UI都很直接而不难。界面都是Div套上去搞定,取值都是“$(xx).xxx”。那种形式在几年看支出进程确实很快。不过客户的须求复杂过后,要你在Div里修改内容。而且同样的东西不断现身在一个地方。当时只要要去化解,无非两种艺术,第一Copy几份,第二做个像样JQuery扩充的,将同样的事物抽象在联合,然后“$xxx(div)”后它就变成你想要的构件。骨子里到此地Web已经前进了一点点,可以选择一大半的代码了,那它究竟算不算真正的机件呢?答案很粗略:不算。或是您要问怎么不算?

 
当前你越发接触要求后,客户要求您可见将DivA中的某个地点加上BDiv,而BDiv不是曾几何时都会并发。或者让您嵌套多层。然后每一层的职能都不太相同。那时候应该就咳嗽了。增加的代码就一定冗余了很难有限支撑,而且样式很难修改。怎么会这么吧?其实原因很粗略,因为您一直认为Web上拥有的事物在相同层。并不曾将它们按层次划分来举行管制。之所以以前见到的机件都是“伪组件”。下边一幅图将显得实在的零部件结构。

威尼斯人线上娱乐 21

确实的零件该有的样子

  上边那几个图假如用传统的完结思路应该是比较头痛的。须求做过多包裹才能落得这一个界面。但一旦将它们一层层的拆开来达成,然后似乎搭积木一样,有层次的拼在一起。那几个题材就可能变的粗略。假设每个组件都得以打包并且嵌套,上层组件之间只必要关爱它需要的下层组件的属性和方法就行了。那样考虑就很有层次,不在头疼如何协会的难题。

 
组件化还有一个意思在于把相同的效应抽象成中央的另一个零部件,然后多少个近乎组件都可以去继承它,并做个性化的恢弘定制。

 
组件化是一对一美好的事物,解决了条件的题材。然则Web要落到实处困难。而且要让各类开发者都急迅控制,那样的框架达成也是一对一费劲。

  隔离性:

  Web的CSS,JS,DOM都是很平直的事物。都得以直接影响。假若要做组件,那么需要将零件举行隔离。样式要求隔离,DOM须要隔离。那样组件与组件之间才不会时有发生苦恼。

  可测试性:

 
Web的测试远远没有原生应用的测试做的好,若是要进行组件化,那么对每个组件,越发是嵌套组件与整合组件的测试尤其关键。好的框架应该能很快稳定组件,以及艺术。很好的显示当前组件的构造,便于修改难点。

  划分性:

 
重用公用基础的零件,依照需求搭建面向业务的组件与重构新的零部件,那样组件化的着实生产力才能发挥出来,但是要能做到灵活开发,那样的框架落成困难。

  非入侵性:

 
新的组件放在旧的事务,要确保融合,那样的框架才能满足现有的急需,假诺每一回涨级都要干净舍弃旧的东西,那样对开发以来也是宏大的工作量。

  学习台阶:

  原先Web端都是前端开发或UI设计做HTML模板,后端套模板。即使现在将这个费用都位于前端,前端必须领会一定的JS和框架的知识。借使让一个原先写HTML的触发这么的框架。若是她们无法领略那么这样的框架真的好吧?

Semantic 是一个为宗旨化而设计的UI框架。主要特征:50+ UI 元素;3000 + CSS
变量;3 级变量继承(和 SublimeText 类似);用 em
作为单位创设以落到实处响应式设计;Flexbox 友好。

1.1 jQuery mobile flat-ui 主题

 

  

组件化仅仅只是前端迈向标准化的一个上马!

  假若说组件化框架是骨架,有限帮衬各类零部件的独立性,那么业务就是灵魂。凝聚分化的预制构件。业务不仅要求输入输出的机件,必要一套能适应Web端的事务架构,有限支持工作与组件分离,这样工作才能高效重用,界面更换应该不影响前端的事体部分。

官网:

1.2jQuery mobile Bootstrap 主题

 

 

 

 

 

 

 

尾巴:

 
到目前截至前端领域仍然是酷热的造轮子阶段,何人也不比何人好,你有张子房计我有过墙梯,都有谈得来不足的地点。组件化的大潮势必可挡,以React与Vue代表的组件化框架最有愿意变成美好的工具。可是在前者蓬勃发展(打烂仗)一代相信会有更好的车轮解决他们尚无缓解的标题。

 
前端框架真正要缓解的难点是开发效能与尊敬功能,而方今的框架首要解决组件的重用性与运作功效。真正开发难题莫过于是卡在频频创制业务层的车轮与框架的选拔门槛与组件的有限匡助效能。未曾一套完善的前端框架对作用的擢升照旧很有限的,不然照旧在走从前的覆辙,只是路好走了点,解决了一个难题,其余各个题材出来了,抵消掉了框架的优势。那也算不上革命的翻新。

 
前端组件化很有可能将Web带到3.0阶段,前端渲染将成主流。搜索引擎势必推出新的编制对新的音信举办录取。

Github:

2、Sencha Touch

 

 

    Sencha
Touch做的Web App看起来更像Native
App,用户界面组件和增加的数目管理,全体基于最新的HTML 5和CSS3的
WEB标准,周详包容Android和iOS设备。Sencha
Touch提供了超越50个零部件。

 

 

  1. Foundation

3、阿里系web框架

     

    Kissy是阿里前端自己付出的前端框架,KISSY
是一款跨终端、模块化、使用简易的 JavaScript 框架。除了完备的工具集合诸如
DOM、伊芙nt、Ajax、Anim 等,KISSY
还面向团队合作做了超常规设计,提供了经典的面向对象、动态加载、质量优化解决方案。作为一款全终端帮忙的
JavaScript 框架,KISSY
为运动终端做了大气适配和优化,让您的主次在全终端均能流利运行。KISSY
Mobile是一套面向移动端的成效特色集合,完毕灵活配置的转场动画和View的解偶。KISSY
5.0一度完美援救移动端。Kissy架构可以参见这里。Kissy架构图:

 

 

 

Foundation 是一个易用、强大而且灵活的框架,用于营造基于其余设施上的 Web
应用。提供各类 Web 上的 UI 组件,如表单、按钮、Tabs 等等。

4、百度移动web框架

百度运动web框架有三个了然了一下。

 

官网:

4.1 GMU  

    GMU(Global Mobile
UI)是百度前端通用组开发的移动端组件库,具有代码体积小、简单、易用等特性,组件内部处理了好多活动端的bug,覆盖机型广,能大大收缩开发交互型组件的工作量,万分适合移动端网站项目。
该器件基于zepto的mobile UI组件库,提供webapp、pad端不难易用的UI组件!

 

Github:

4.2 Clouda+ 

 

 
  Clouda+是运动web应用开发全体解决方案,并专门针对百度轻应用场景举行了优化,意在让webapp体验和交互比美Native应用。

 

 

  1. Materialize

4.3 efe   

efe百度商业系统前端团队推出的web框架,efe有如优势。

4.3.1模块化、组合式的活动前端框架
4.3.2基于 Stylus 的移位端样式库

    他是提供了 JavaScript 模块、CSS
样式库与花费平台的完全前端解决方案。擅长运动端 SPA 项目、轻应用。

       他是专为移动端设计的 Mixin 风格样式工具库。在其基础上成立了 Rider
UI,一个心灵手巧的 UI 样式库。

 

 

 

一个基于 Material Design 的 CSS 框架。

5、tencent

官网:

5.1 Spirit

     
   Spirit并不是一个切实的框架或者工具,不过他是移动端一多级解决方案的结缘与聚集。她是Alloyteam支付公司在移动支付品种中经过大批量实施、归结、总计提炼而成,最后沉淀下来的一个序列,真正建立一套移动Web开发的三合一解决方案。Spirit主要由5个部分构成:移动Web开发规范、JM、JMUI、Mobug、马尔斯。

 

 

Github:

5.2 Frozen UI

    Frozen
UI是腾讯ISUX团队(社交用户体验设计团队)依照最新的无绳电话机QQ设计规范制作的移位端Web框架,包蕴CSS基础样式和零部件、JavaScript基础零部件和部分动画效果库。为了便利记念和伸张趣味性,腾讯ISUX团队为它取了动画《冰雪奇缘》的英文名,并把埃尔莎女王作为该品种的卡通代言人。

   
项目主页:
http://frozenui.github.io

    Github代码托管地址:

 

  1. Material-ui

6、ionic

 

 
  Ionic提供了一个免费且开源的移动优化HTML,CSS和JS组件库,来创设高交互性应用。基于Sass构建和AngularJS 优化。

    Ionic既是一个CSS框架也是一个Javascript
UI库。许多零件须要Javascript才能发生神奇的出力,即便经常组件不要求编码,通过框架扩大可以很不难地利用,比如大家的AngularIonic扩充。

    Ionic遵守视图控制方式,通俗的精通和 Cocoa
触摸框架相似。在视图控制形式中,我们将界面的不比部分分成子视图或包涵其余视图的子视图控制器。然后视图控制器“驱动”内部视图来提供互相和UI成效。一个很好的例证就是标签栏(Tab
Bar)视图控制器处理点击标签栏在一多级可视化面板间切换。 github。

 

 

集成 Google Material 设计的 React 组件。

7、Amaze UI

      Amaze
UI 采纳标准先进的 Mobile first
理念,从小屏逐步扩充到大屏,最后落成所有屏幕适配,适应移动互联前卫。Amaze
UI 含近 20 个 CSS 组件、10 个 JS 组件,更有 17 款包蕴近 60 个主旨的 Web
组件,可飞速营造界面可以、体验优异的跨屏页面,大幅度进步你的开发作用。Amaze
UI 格外讲究品质,基于轻量的 Zepto.js 开发,并选取 CSS3
来做动画交互,平滑、高效,更合乎运动设备,让你的 Web
应用可以迅速载入。

官网:

8、CardKit

 

    CardKit 是来自豆瓣的一个运动 UI 框架,使用
Card\Unit\Component 概念火速构建移动 Web
应用。应用外观跟原生应用相同。

 

 

 

 

 

Github:

9、App.js

    App.js 是一个轻量级的 JavaScript UI
库,用来创设移动的 Web
应用,应用的外观跟原生的行使相同,品质也类似一致。

特点:

跨平台,支持 Android 2.2+ 和 iOS 4.3+

Widgets 和自定义主旨

页面调整管制

 

 

10、Junior

 
  Junior为前端框架,用来创设基于HTML5的移位Web应用,外观与作为跟地面使用一般。它使用针对移动质量优化的CSS3转换,援助旋转灯箱效果,包涵一种类的
Ratchet UI组件。整个框架使用Zepto(类似jQuery语法的轻量级移动设备js类库),且构成了backbone.js的视图和路由。
Junior相当便于使用,且提供详细的文档及案例,便于学习。

 

 

 

 

  1. Phantomjs

11、Jingle

 

    Jingle是一个SPA(Single Page
Application)开发框架,用来开发活动端的html5施用,在感受上尽量去将近native应用,希望有一天html5可以完毕与native
一样的操作经验。提供了按钮、列表、表单、弹出框、轮换、上拉/下拉、日历等各类运动端常用的机件,简单适用.

 

 

 

 

PhantomJS 是一个根据 WebKit 的劳务器端 JavaScript
API。它周密协助web而不需浏览器辅助,其高速,原生帮衬各个Web标准: DOM
处理, CSS 采用器, JSON, Canvas, 和 SVG。 PhantomJS 可以用来 页面自动化
, 网络监测 , 网页截屏 ,以及 无界面测试 等。

12、mui

    质量和体会的差距,平昔是mobile app开发者甩掉HTML5的严重性原因。
浏览器天生的切页白屏、不忍直视的转页动画、浮动元素的抖动、不可以流利下拉刷新等难点,那么些都让HTML5开发者倍感挫败,更加获得Android低端机运行,摔手机的心都有;
另一方面,浏览器默许控件样式又少又丑,制作一个可观的控件卓殊麻烦,也有部分创设简便的ui框架但品质低下。

    mui框架有效的缓解了那些题材,那是一个足以便宜开发出高质量App的框架,也是眼前最相仿原生App效果的框架。

 

 

官网:

13、Polymer

   
谷歌给我们带来了Polymer。Polymer是是一个让你可以轻易成立web组件的框架。
在他们做到开发web应用底层结构从此,他们起先注意于UI。Polymer 是 material
design 在 web 平台的兑现. Polymer 团队与 material design
设计团队合营格外的一体。 事实上, Polymer 在 material design
的研发阶段扮演着关键性的角色: 它被用于神速原型化和再次出现规划的概念.

Github:

  1. Pure

Pure.css是美利坚联邦合众国雅虎集团产品的一组轻量级、响应式纯css模块,适用于任何Web项目。

官网:

GitHub:

华语教程:

  1. Flat-ui

Flat UI是按照Bootstrap做的Metro化改造,由Designmodo提供。Flat
UI包含了广大Bootstrap提供的机件,不过外观更加美好。Flat UI Flat
UI是一套精美的扁平风骨 UI 工具包,基于 推特(Twitter) Bootstrap 完成。

官网:

Github:

  1. Jquery-ui

jQuery UI 是创建在 jQuery JavaScript
库上的一组用户界面交互、特效、小部件及主旨。无论你是开创中度交互的 Web
应用程序依旧单独向窗体控件添加一个日期选用器,jQuery UI
都是一个到家的接纳。

官网:

Github:

  1. React-bootstrap

基于 React 的 Bootstrap 3 组件。

官网:

Github:

  1. Uikit

Uikit 是一款轻量级、模块化的前端框架,可急迅营造强大的web前端界面。

官网:

GitHub:

汉语教程:

  1. Metro-ui-css

Metro UI CSS 是一套用来创设类似于Windows 8 Metro UI风格网站的样式.
这组风格被支付成一个独门的按照Bootstrap的缓解方案。

官网:

Github:

  1. Iview

iView 主要服务于 PC 界面的中后台业务,是一套高质量的开源 UI
组件库。紧要特色:使用单文件的 Vue 组件化开发格局;基于 npm + webpack +
babel 开发,帮衬 ES2015;高质量、成效丰富;友好的 API
,自由灵活地行使空间;详细、友好的文档,事无巨细。

官网:

Github:

  1. Layui

Layui
是一款应用自身模块规范编写的国产前端UI框架,遵从原生HTML/CSS/JS的书写与集体方式,门槛极低,拿来即用。其外在极简,却又不失饱满的内在,体积轻盈,组件丰盈,从基本代码到API的每一处细节都由此缜密雕琢,卓殊适合界面的敏捷支付。

官网:

Github:

  1. Mui

MUI 是一个轻量级的CSS框架,遵从谷歌(Google)的Material Design设计策略。

官网:

Github:

  1. Frozenui

Frozen
UI是一个开源的简便易用,轻量疾速的移位端UI框架。基于手Q样式规范,选用最常用的机件,
做成手Q公用离线包收缩请求,升级形式友好,文档完善,近年来圆满选取在腾讯手Q增值业务中。

官网:

Github:

  1. AlloyUI

AlloyUI是一个基于YUI3(JavaScript)的框架,它利用Bootstrap 3(HTML /
CSS)为营造高可伸张应用程序提供了一个简易的API。

官网:

Github:

  1. W3.CSS

W3.CSS是一个响应式的现代CSS框架。W3.CSS比其余CSS框架更小更快(大小仅为29K),比此外CSS框架更便于学习,更便于使用。

教程:http://w3schools.wang/w3css/w3css\_tutorial.html

本文由 【W3C普通话教程】 公布。转载此小说须经 【W3C汉语教程】
同意,并请附上 W3C中文教程 及
原文链接:http://w3schools.wang/report/top-UI-open-source-framework-summary.html


相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图