11個(gè)超贊的Vue.js UI組件庫(kù)
Vue、React和Angular都是前端開發(fā)人員熟知的框架。其中Vue(Vue.js)作為國(guó)人的杰作更是家喻戶曉。Vue框架主要用于構(gòu)建UIS(用戶界面)和SPA(單頁(yè)應(yīng)用程序)。Vue的主要優(yōu)點(diǎn)在于它易于學(xué)習(xí)、有豐富的UI庫(kù),只要有HTML,CSS和JavaScript的基礎(chǔ)就可以很容易地開始使用VUE構(gòu)建Web應(yīng)用程序。
近些年Vue開源社區(qū)的蓬勃發(fā)展,許多前端程序員紛紛加入Vue的大家庭,同時(shí),他們也為Vue貢獻(xiàn)了許多組件庫(kù),大大簡(jiǎn)化了Vue的開發(fā)。
本文介紹了什么是組件庫(kù),并列舉了一些超贊的VUE組件庫(kù)。
什么是組件庫(kù)呢?
組件庫(kù)是一組可重用的組件,由各種樣式的UI元素(如按鈕和文本)組成,這些UI元素保存在單個(gè)存儲(chǔ)庫(kù)或文件夾中。
組件庫(kù)復(fù)用性非常重要,有助于產(chǎn)品快速實(shí)現(xiàn)。以Netflix、Uber和Twilio為例,它們使用組件庫(kù)設(shè)計(jì)應(yīng)用系統(tǒng),實(shí)現(xiàn)了令人印象深刻的界面,并且能夠快速實(shí)現(xiàn)功能、快速升級(jí)迭代。
組件庫(kù)還有助于建立統(tǒng)一風(fēng)格的用戶界面、提高用戶體驗(yàn)。包括各個(gè)模塊的同類元素,例如:滾動(dòng)列表、按鈕、標(biāo)簽欄等等。提高了外觀整體感,提高了用戶交互性、可訪問(wèn)性,使得應(yīng)用程序更加友好舒適。
組件庫(kù)主要包括兩個(gè)方面:
- UI :負(fù)責(zé)用戶界面
- UX:關(guān)注用戶體驗(yàn)
正是由于Vue.js擁有豐富的組件庫(kù),才使得Vue.js的開發(fā)變得簡(jiǎn)單。
下面列舉了一些最流行的Vue組件庫(kù)。
1.Vuetify
https://vuetifyjs.com/en/
https://github.com/vuetifyjs/vuetify
Vuetify是一個(gè)基于Vue框架的非官方組件庫(kù),可以創(chuàng)建干凈、可重用的UI組件。Vuetify提供了現(xiàn)成的代碼腳手架,可以以vue-cli模板的形式快速開始開發(fā)應(yīng)用程序。另外,Vuetify的社區(qū)也一直保持很活躍,這也是過(guò)去它一直能夠快速發(fā)展的原因。
2.Buefy
https://buefy.org/
Buefy是一個(gè)基于Vue和Bulma的輕量級(jí)UI組件庫(kù)。這個(gè)框架雖然與Bulma捆綁在一起,但整個(gè)大小不到100 KB。小有小的好處,但也有它的弱點(diǎn)。雖然Buefy提供了一些現(xiàn)成的組件,對(duì)于初學(xué)者非常友好,但如果需要開發(fā)大型項(xiàng)目,這個(gè)庫(kù)可能不夠豐富。
3.Vue Material
https://www.creative-tim.com/vuematerial/
https://github.com/vuematerial/vue-material
Vue Material是一個(gè)可擴(kuò)展的組件庫(kù),采用Google的設(shè)計(jì)規(guī)范設(shè)計(jì)。該庫(kù)可以簡(jiǎn)化復(fù)雜應(yīng)用程序的UI開發(fā)。它提供了一個(gè)非常輕量級(jí)的屏幕適配方案,并且能夠兼容各種Web瀏覽器。另外,它的API還對(duì)初學(xué)者很是友好,容易入門。
4.Vue Material Kit
https://github.com/creativetimofficial/vue-material-kit
Vue Material Kit是一個(gè)基于Vue Material和Vue.js構(gòu)建的組件庫(kù)。Material Kit 的設(shè)計(jì)靈感來(lái)自Google的Material Design。與Bootstrap 4 UI Kit有點(diǎn)像。在構(gòu)建新網(wǎng)站或Web應(yīng)用程序時(shí)使用Vue Material Kit可以加快設(shè)計(jì)/開發(fā)過(guò)程。使用這個(gè)庫(kù)只需要有JavaScript、Vuejs和Vue Router的基本知識(shí),除此之外,它非常容易掌握,而且很漂亮。Vue Material提供了豐富的組件,可以通過(guò)使用各種組件,并將它們組合在一起,創(chuàng)建令人驚艷的前端UI。
5.Quasar
https://quasar-framework.org/
https://github.com/quasarframework/quasar
Quasar是一個(gè)基于Vue的前端框架。如果你的應(yīng)用程序打算采用響應(yīng)式,以支持Web和移動(dòng)端,那么它是一個(gè)很不錯(cuò)的選擇。截至2023年9月這個(gè)框架在GitHub上已經(jīng)擁有超過(guò)24.3k顆星,并且還一直在升級(jí)??梢哉f(shuō)Quasar是一個(gè)成熟的、活躍的、使用廣泛的、文檔豐富的優(yōu)秀的UI框架。
6.Vux
https://github.com/airyland/vux
Vux是一個(gè)基于WeChat WeUI和webpack的Vue框架。它的支持文件大部分是中文的,因此非常適合國(guó)人學(xué)習(xí)。Vux主要用于移動(dòng)應(yīng)用程序的快速開發(fā)。
這是Vux的在線Demo:https://vux.li/demos/v2/#/demo
7.Element
https://github.com/ElemeFE/element
https://element-plus.org/zh-CN/
Element是一個(gè)Web的UI組件庫(kù),除了Vue版本之外,它還有React和Angular版本。對(duì)于目前的Vue3.0, 官方建議使用Element Plus 。
8.Keen-UI
https://github.com/JosephusPaye/Keen-UI/
Keen-UI側(cè)重于通過(guò)JavaScript而不是可視化組件實(shí)現(xiàn)用戶交互。因此,它不包括網(wǎng)格系統(tǒng)、排版等的樣式。它的設(shè)計(jì)靈感來(lái)自于Google的Material(https://m3.material.io/)。Keen UI并不需要在整個(gè)應(yīng)用程序中使用,可以根據(jù)需要,按需使用一些組件。因此,如果想在向現(xiàn)有應(yīng)用程序添加一些功能時(shí),那么Keen UI是一個(gè)很好的選擇。
9.Mint UI
http://mint-ui.github.io/
https://github.com/ElemeFE/mint-ui/commits/
Mint UI是一個(gè)基于Babel JavaScript編譯器的輕量級(jí)Vue UI組件庫(kù)。非常適用于移動(dòng)應(yīng)用程序開發(fā)。
10.Bootstrap-Vue
https://bootstrap-vue.org/
https://github.com/bootstrap-vue/bootstrap-vue
Bootstrap-Vue將Bootstrap的強(qiáng)大功能引入到了Vue框架,提供了一系列現(xiàn)成的UI組件和網(wǎng)格系統(tǒng),并且一切都是基于響應(yīng)式的,因此特別適合移動(dòng)應(yīng)用UI開發(fā)。此外,該庫(kù)的組件兼容WAI-ARIA的Web可訪問(wèn)性指南。與Bootstrap的快速創(chuàng)建UI組件理念保持一致,Bootstrap-Vue使開發(fā)人員能夠快速啟動(dòng)項(xiàng)目開發(fā)工作。另外,Bootstrap-Vue的文檔配套非常豐富,社區(qū)支持也很強(qiáng)大,這也使得它成為UI技術(shù)的一個(gè)穩(wěn)妥選擇。
11.Eagle.js
https://github.com/Zulko/eagle.js
Eagle.js是一個(gè)Vue框架,允許開發(fā)人員在Web應(yīng)用程序中實(shí)現(xiàn)幻燈片效果。在Eagle.js中有許多主題、動(dòng)畫、小部件和樣式可供選擇。
Eagle.js文檔比較少,但Eagle.js在網(wǎng)站上提供了大量示例:https://zulko.github.io/eaglejs-demo/#/。
如何選擇組件庫(kù)?
以上列出的Vue UI組件庫(kù),各有優(yōu)劣,選擇哪一個(gè)是最好的?還是要結(jié)合你的項(xiàng)目要求和團(tuán)隊(duì)能力,例如:Quasar適合于新項(xiàng)目的解決方案。Vuetify或Keen-UI適合作為現(xiàn)有項(xiàng)目的插即用UI庫(kù)。