iView 近期的更新,以及那些“不为人知”的故事

在过去的两个多月里,iView 连续宣布了 2.9.0 和 2.10.0 两个重要版本。这两个版本总共有 255 个 commit,凌驾 40 项更新。来看一下,iView 详细都更新了些什么。

完全的更新日记能够到 GitHub releases 检察:
2.9.0: https://github.com/iview/iview/releases/tag/v2.9.0
2.10.0: https://github.com/iview/iview/releases/tag/v2.10.0

或许在 iView 文档的更新日记检察:
https://www.iviewui.com/docs/guide/update

申明:由于 2.10.0 存在编译后文件过大的题目,请更新至 2.10.1

“看得见”的更新

所谓看得见的更新,就是更新后能实在感受到的东西。这两个版本都得谢谢两位瑞典大神
SergioCrisostomoXotic750 的孝敬,iView 才得以愈来愈完美。

日期组件 DatePicker 的重构

首先是在 2.10.0 对日期组件 DatePicker 的重构。DatePicker 是 iView 48 个组件里最庞杂的组件之一。庞杂的功用使得代码逻辑异常重,在许多新特征的支撑上,比方兼容差别国度的日历范例等都很难在此基础上迭代,不能不推倒重来。

SergioCrisostomo 之前有开发过日期相干的 JS 库(https://github.com/SergioCrisostomo/js-calendar),所以对日期相干的功用点和 API 异常熟,iView 也是基于此库举行的重构。

新的日期组件重要增添了以下功用:

1.局限挑选支撑从右往左挑选了。
之前在局限挑选时,必须先选出发点,再选尽头,也就是从左往右选,但许多用户的习气却恰好相反。该版本则同时支撑两个方向的挑选。

2.新增 split-panels 属性,开启后,摆布两面板能够不联动。
之前在局限挑选时,摆布两个面板是联动的,也就是右侧永远比左侧大一个月,任何一个面板切换月份或年份,另一个面板都邑自动切换。该版本则能够设置为不联动,如许轻易定位肇端月份和完毕月份。如图所示:

《iView 近期的更新,以及那些“不为人知”的故事》

3.新增 multiple 属性,开启后,能够挑选多个日期。
虽然之前版本能够用别的 iView 组件组合出来一个多选的日期,但效果和交互若干会打折扣,该版本只需增添属性 multiple,就能够在一个日期面板上同时挑选和显现多个日期了。如图所示:

《iView 近期的更新,以及那些“不为人知”的故事》

4.新增属性 show-week-numbers,开启后,能够显现星期数。
增添这个属性,就能够在日历面板上显现当前是一年的第几周。如图所示:

《iView 近期的更新,以及那些“不为人知”的故事》

另有别的许多项的更新,比方新增 start-date 属性,能够设置面板睁开时默许显现的日期。新增属性 time-picker-options,能够在 type 为 datetime 和 datetimerange 下,设置 TimePicker 的属性,比方时刻距离 steps。完全的更新能够产看更新日记,这里不一一列举了。

键盘可接见性的支撑

键盘的可接见性,重如果经由过程键盘的方向键tab键空格键等完成表单组件的切换和交互。在填写一个表单时(iView Form 组件),特别有效,你能够脱离鼠标,就完成一个庞杂表单的填写与提交。

现在 iView 最新版本支撑键盘可接见性的组件有:
ButtonInputRadioCheckboxSwitchAutoCompleteSliderInputNumber。更多组件还在连续支撑中。

事实上,原生的表单控件,浏览器都是支撑键盘的可接见性的,比方 <button><input type="radio"> 等等。iView 对这些原生控件举行了重塑,不单单议使得 UI 悦目和一致,更重要的是功用的雄厚和交互体验的提拔。

现在上述的组件,都是能够经由过程键盘的 tab键 选中的,这是第一步,如图所示:

《iView 近期的更新,以及那些“不为人知”的故事》

能够看到,组件在被选中时,表面多了一个高亮层,表明当前选中的控件,这时刻就能够经由过程键盘别的按键继承操作了,比方单选组件 Radio,在选中状态下,能够经由过程键盘的方向键直接切换选项;Checkbox 在被激活时,能够经由过程空格键挑选和作废挑选某小项,经由过程 tab 键激活下一个小项。

“看不见”的更新

另有一些更新,是没法直接瞥见和体会到的。

比方更新了大批的依靠:

  • babel 系列悉数更新
  • 运用了 browserslist

运用了 sourcemap

部份组件的重构,虽然功用无任何变化,但代码构造和逻辑都做了优化和可保护性设想。

另有部份组件的自动化测试、延续集成对 GitHub travis-ci 的兼容等等。

表面须要优化,内部一样也是,就像一个人,既要有外在美,也要有内在美。

“不为人知”的故事

在开源工作中,发生过许多风趣的事,这里分享几个有意思的。

在瑞典,想用开源项目,得先改 bug

《iView 近期的更新,以及那些“不为人知”的故事》

在瑞典运用开源项目到临盆环境时,开发者有义务来修复开源项目的 bug。这一刻,以为瑞典好好啊。

“吵”不过老外

Sorry for my poor english. 已成为一个段子了,然后不能不必 english。然则老外一句 Sorry for my poor Chinese 就会让你无话可说。所以,英语不好的我,有时刻就“吵”不过老外们了。

《iView 近期的更新,以及那些“不为人知”的故事》

当我还在查 “optimisation” 是啥意思的时刻,对方已 balabala 说一堆了,吵不过就让步吧。

就像你跟敬慕的女神谈天,你 bibibi 说了一大堆,对方半天回你一句 “哦” 一样,哈哈。

不过,让步归让步,讲的照样有原理的,不能为了让步而让步,真谛才是最重要的。

讲这些,更多想说的是,iView 的每一个功用点,都是我们经心琢磨议论出来的,不会依附主观认识去做,也不会由于任何一个 Feature Request 就去支撑,每一个 feature 都是议论出的效果。所以,这是一个既有情怀,又担任的开源项目。

现在的 iView 中心团队有 3 人在同时保护,比拟之前自力斗争的我要好的多了,但仍然须要更多像瑞典开发者如许有开源精力的工程师们到场,努力把 iView 打造成环球最好用、最悦目的 UI 组件库。期待你的到场!

下个版本预报:下个版本设计重构
Select 组件,以周全支撑表单组件的键盘可接见性,敬请期待。完全的设计见里程碑
https://github.com/iview/iview/milestone/9

    原文作者:Aresn
    原文地址: https://segmentfault.com/a/1190000013663356
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞