element VS? iview
(最近項目UI框架在選型 ,做了個分析, 不帶有任何利益相關)
主要從以下幾個方面來做對比
使用率(npm 平均下載頻率,組件數量,star, issue…)
API風格
打包優化
與設計師友好性
1,使用率(npm 平均下載頻率,組件數量,star, issue…)
npm 下載次數及issue
目前明顯未解決bug遺留數量? ,
這個應該跟生態也有關系, 用element 的人多,發現bug 的幾率更大,2是iview 里面有很多issue 寫明是UI組件的問題 但未標明是確切的bug .
以上對比 其實可以看出, element 開發者團隊規模大于iview 團隊,其結果就是 無論是提交代碼頻率, 發布版本數量 都比iview 更強!
截止目前 最新組件支持
結論 ,element 生態更好,使用頻率遠超過iview ,element開發團隊實力更強
一些小眾組件上各有所長 整體iview 更豐富(時間軸,加載進度條,氣泡卡片 ,BackTop,圖釘)
API風格
通過使用平率最高的 form? table 日歷? select? 等比較兩者
對應代碼
明顯感覺 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? 按需求加載? 這里感覺官方給的文檔不是很詳細
主題
iview
本身提供了一套主題可供選擇,除此之外 自定義主題
方法一(官方推薦,前提條件是使用webpack):
新建一個.less 文件 , 先在less文件中引入官方樣式文件 然后在此基礎上復寫
方法二 :
官方提供了 自動編譯工具iview-them 來編譯。干的事情就是 把自定義的樣式和 github倉庫最新的樣式 通過工具生成一個新的樣式文件。
element-ui
如果只替換顏色 ,可以使用在線主題生成工具在線編輯顏色, 生成element-ui 主題 直接下載 再引入
深度定制主題
官方提供了 主題生成工具? element-them
執行命令 初始化得到一個配置文件 ,修改相關配置 經過編譯得到 得到相關主題文件? 再通過babel 插件引入
雙方都提供了專門的工具用于深度定制主題,綜合比較 iview 更加簡單,element 主題定制需要配合 babel做一些預編譯 ,以及步驟更多 顯得更加復雜
過渡動畫
element 有內置過渡動畫? 使得組件的切換變化 更具動感
iview 更為中規中矩
對設計人員
element 提供了 Sketch 和 Axure 工具 對設計人員友好
iview 沒有提供
以上 ...