element VS iview
(最近項目UI框架在選型 ,作了個分析, 不帶有任何利益相關)
主要從如下幾個方面來作對比
使用率(npm 平均下載頻率,組件數量,star, issue…)
API風格
打包優化
與設計師友好性vue
1,使用率(npm 平均下載頻率,組件數量,star, issue…)
element-uireact
npm 下載次數 以及issuewebpack
目前明顯未解決bug遺留數量 ,git
這個應該跟生態也有關係, 用element 的人多,發現bug 的概率更大,2是iview 裏面有不少issue 寫明是UI組件的問題 但未標明是確切的bug .github
以上對比 其實能夠看出, element 開發者團隊規模大於iview 團隊,其結果就是 不管是提交代碼頻率, 發佈版本數量 都比iview 更強!web
截止2017/6/17 最新支持組件對比npm
(PS 這個是直接看的 官方文檔上面的組件列表 ,不表明最後結果)element-ui
結論 ,element 生態更好,使用頻率遠超過iview ,element開發團隊實力更強
一些小衆組件上各有所長 總體iview 更豐富(時間軸,加載進度條,氣泡卡片 ,BackTop,圖釘)
API風格
經過使用平率最高的 form table 日曆 select 等比較二者api
對應代碼babel
明顯感受 iview 的api 更加簡潔,在生成相似表格 下拉框這些較複雜的組件時 , iview 的方式相似於antdesign , 好處是直接傳數據進去,在內部實現了模板生成,高效 快捷。 而element 則是用到到v-for vue指令結合的方式去生成,批量生成元素。
表格 操做列 自定義渲染的時 ,iview 使用的是 vue的 render 函數, element 直接在template 中插入對應模板
表格分頁都須要 引入分頁組件 配合使用
二者api 整體比較 ,iview 要比element 簡潔許多。 餓了麼更側重於在template裏直接去渲染模板
思想上 我的以爲iview偏向react, element 更vue
表單校驗 二者都使用同一款插件 async-validator 校驗方式同樣
項目優化角度
首屏優化,第三方組件庫依賴過大 會給首屏加載帶來很大的壓力,通常解決方式是 按需求引入組件
element-ui 根據官方說明 現須要引入 babel-plugin-component 插件 作相關配置 而後直接在組件目錄 註冊全局組件
這裏感受官方給的文檔不是很詳細
主題
iview
自己提供了一套主題可供選擇,除此以外 自定義主題
方法一(官方推薦,前提條件是使用webpack):
新建一個.less 文件 , 先在less文件中引入官方樣式文件 而後在此基礎上覆寫
方法二 :
官方提供了 自動編譯工具iview-them 來編譯。乾的事情就是 把自定義的樣式和 github倉庫最新的樣式 經過工具生成一個新的樣式文件。
element-ui
若是隻替換顏色 ,可使用 在線主題生成工具 在線編輯顏色, 生成element-ui 主題 直接下載 再引入
深度定製主題
官方提供了 主題生成工具 element-them
執行命令 初始化獲得一個配置文件 ,修改相關配置 通過編譯獲得 獲得相關主題文件 再經過babel 插件引入
雙方都提供了專門的工具用於深度定製主題,綜合比較 iview 更加簡單,element 主題定製須要配合 babel作一些預編譯 ,以及步驟更多 顯得更加複雜
過渡動畫
element 有內置過渡動畫 使得組件的切換變化 更具動感
iview 更爲中規中矩
對設計人員
element 提供了 Sketch 和 Axure 工具 對設計人員友好
iview 沒有提供
以上 ...