1. 程式人生 > >React-UI庫比較

React-UI庫比較

迴歸部落格了。說明我變得不那麼忙了。最近幹了件有意思的事情,根據團隊需求選擇一個React UI庫,把結果和感受和大家分享一下。

待對比的庫

國內使用React的小夥伴可能很多都用Antd,其實國外也有很多優秀的React UI庫。本次選擇的有:

  • Ant Design
  • Ant Design Mobile
  • Elemental UI
  • Material UI
  • React-Bootstrap
  • Reactstrap
  • Semantic UI
  • Onsen UI

我關注的點

首先,由於很多responsive的庫,對mobile的支援並不好,我希望pc和mobile選擇兩個UI庫。下面是我關注的一些方面:

  • 社群活躍度
  • 是否長期維護
  • license
  • components數量
  • 國際化支援,主要是 locale (i18n) 和 RTL direction
  • accessibility,主要針對殘障人士
  • 按需載入和包大小

結論

name pc or mobile dependencies star watch license whole size(gzipped) load on demand language RTL
Material UI both(response) 11 32.4k 1141 MIT yes doesn’t support ×
Antd pc 42 23.4k 1036 MIT yes i18n ×
Antd-mobile mobile 28 4k 202 MIT yes some of i18n, there is an api to extend other language ×
Elemental UI both(response) 2(some peer modules must be installed manually, eg react-addons-css-transition-group and jquery) 3.9k 106 MIT 80kb(js) + 65.6kb(css) couldn’t find any info about it ×
React-Bootstrap both(response) not stable, under development to v1.0.0, APIs will change ×
Reactstrap both(response) 6 3.4k 113 MIT 77.3kb(js) + 142(css) couldn’t find any info about it ×
Semantic UI React both(response) 5 5.6k 194 MIT yes doesn’t support ×
Onsen UI mobile 3 5.9k 323 Apache License 2.0 yes doesn’t support ×
  • RTL: 提了issue問各種UI庫的作者,除了Bootstrap 3有補丁可以支援RTL外,其他全部不支援
  • 多國語言:對多國語言的支援,目前Antd最好
  • components數量和社群活躍度:Materail UI (PC)和 Onsen UI (Mobile)是比較好的選擇
  • accessibility:目前沒有看到對殘障人士的特殊支援
  • 按需載入:Materail UI和Antd有特殊支援,其他依賴於打包工具(比如webpack的Tree Shaking,但是webpack的這個特性不完善 https://github.com/webpack/webpack/issues/2867