在過去的兩個多月裏,iView 陸續發佈了 2.9.0 和 2.10.0 兩個重要版本。這兩個版本總共有 255 個 commit,超過 40 項更新。來看一下,iView 具體都更新了些什麼。git
完整的更新日誌能夠到 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.0github
或者在 iView 文檔的更新日誌查看: https://www.iviewui.com/docs/guide/update瀏覽器
說明:因爲 2.10.0 存在編譯後文件過大的問題,請更新至 2.10.1babel
所謂看得見的更新,就是更新後能真實感覺到的東西。這兩個版本都得感謝兩位瑞典大神 SergioCrisostomo 和 Xotic750 的貢獻,iView 才得以愈來愈完善。iview
首先是在 2.10.0 對日期組件 DatePicker 的重構。DatePicker 是 iView 48 個組件裏最複雜的組件之一。複雜的功能使得代碼邏輯很是重,在許多新特性的支持上,好比兼容不一樣國家的日曆規範等都很難在此基礎上迭代,不得不推倒重來。ide
SergioCrisostomo 以前有開發過日期相關的 JS 庫(https://github.com/SergioCrisostomo/js-calendar),因此對日期相關的功能點和 API 很是熟,iView 也是基於此庫進行的重構。測試
新的日期組件主要增長了如下功能:優化
1.範圍選擇支持從右往左選擇了。 以前在範圍選擇時,必須先選起點,再選終點,也就是從左往右選,但不少用戶的習慣卻恰好相反。該版本則同時支持兩個方向的選擇。ui
2.新增 split-panels
屬性,開啓後,左右兩面板能夠不聯動。 以前在範圍選擇時,左右兩個面板是聯動的,也就是右邊永遠比左邊大一個月,任何一個面板切換月份或年份,另外一個面板都會自動切換。該版本則能夠設置爲不聯動,這樣方便定位起始月份和結束月份。如圖所示:設計
3.新增 multiple
屬性,開啓後,能夠選擇多個日期。 雖然以前版本能夠用其它 iView 組件組合出來一個多選的日期,但效果和交互多少會打折扣,該版本只要增長屬性 multiple
,就能夠在一個日期面板上同時選擇和呈現多個日期了。如圖所示:
4.新增屬性 show-week-numbers
,開啓後,能夠顯示星期數。 增長這個屬性,就能夠在日曆面板上顯示當前是一年的第幾周。如圖所示:
還有其它不少項的更新,好比新增 start-date
屬性,能夠設置面板展開時默認顯示的日期。新增屬性 time-picker-options
,能夠在 type 爲 datetime 和 datetimerange 下,配置 TimePicker 的屬性,好比時間間隔 steps。完整的更新能夠產看更新日誌,這裏不一一列舉了。
鍵盤的可訪問性,主要是經過鍵盤的方向鍵、tab鍵、空格鍵等完成表單組件的切換和交互。在填寫一個表單時(iView Form
組件),尤爲有用,你能夠離開鼠標,就完成一個複雜表單的填寫與提交。
目前 iView 最新版本支持鍵盤可訪問性的組件有: Button
、Input
、Radio
、Checkbox
、Switch
、AutoComplete
、Slider
、InputNumber
。更多組件還在陸續支持中。
事實上,原生的表單控件,瀏覽器都是支持鍵盤的可訪問性的,好比 <button>
、<input type="radio">
等等。iView 對這些原生控件進行了重塑,不只僅使得 UI 好看和統一,更重要的是功能的豐富和交互體驗的提高。
目前上述的組件,都是能夠經過鍵盤的 tab鍵
選中的,這是第一步,如圖所示:
能夠看到,組件在被選中時,外面多了一個高亮層,代表當前選中的控件,這時就能夠經過鍵盤其它按鍵繼續操做了,好比單選組件 Radio
,在選中狀態下,能夠經過鍵盤的方向鍵直接切換選項;Checkbox
在被激活時,能夠經過空格鍵選擇和取消選擇某小項,經過 tab 鍵激活下一個小項。
還有一些更新,是沒法直接看見和體會到的。
好比更新了大量的依賴:
browserslist
使用了 sourcemap
。
部分組件的重構,雖然功能無任何變化,但代碼結構和邏輯都作了優化和可維護性設計。
還有部分組件的自動化測試、持續集成對 GitHub travis-ci 的兼容等等。
外表須要優化,內部一樣也是,就像一我的,既要有外在美,也要有內在美。
在開源工做中,發生過許多有趣的事,這裏分享幾個有意思的。
在瑞典使用開源項目到生產環境時,開發者有義務來修復開源項目的 bug。這一刻,以爲瑞典好好啊。
Sorry for my poor english.
已經成爲一個段子了,而後不得不用 english。可是老外一句 Sorry for my poor Chinese
就會讓你無話可說。因此,英語很差的我,有時候就「吵」不過老外們了。
當我還在查 「optimisation」 是啥意思的時候,對方已經 balabala 說一堆了,吵不過就妥協吧。
就像你跟仰慕的女神聊天,你 bibibi 說了一大堆,對方半天回你一句 「哦」 同樣,哈哈。
不過,妥協歸妥協,講的仍是有道理的,不能爲了妥協而妥協,真理纔是最重要的。
講這些,更多想說的是,iView 的每一個功能點,都是咱們精心揣摩探討出來的,不會憑藉主觀意識去作,也不會由於任何一個 Feature Request 就去支持,每一個 feature 都是討論出的結果。因此,這是一個既有情懷,又負責的開源項目。
目前的 iView 核心團隊有 3 人在同時維護,相比之前獨立奮鬥的我要好的多了,但仍然須要更多像瑞典開發者這樣有開源精神的工程師們加入,致力把 iView 打形成全球最好用、最好看的 UI 組件庫。期待你的加入!
下個版本預告:下個版本計劃重構
Select
組件,以全面支持表單組件的鍵盤可訪問性,敬請期待。完整的計劃見里程碑 https://github.com/iview/iview/milestone/9