虽然在Vue中自己亲手构建所有内容很有趣,但这并不妨碍我们使用一些很棒的库。
这些库不仅可以加快开发过程,而且还可以提供更好的QA,因为许多专用组件库已经完成了所有测试!
本文为大家列出了一些最有用的Vue组件库。
准备好学习了吗?现在出发!
P.s.:除非另有说明,否则这些Vue组件库目前尚不可用于Vue 3。此外,所有Github star截止于2021年5月4日。
Vuetify是一个Vue UI库,附带手工制作的Material组件。这是一个专门根据Material Design规范开发的库,并且每个组件都采用移动优先的方法构建,因此既具有响应性又非常模块化。
通过vue-cli将Vuetify添加到项目中简单到运行vue add vuetify
即可。
作为一个完整的框架,Vuetify具有以下功能:
我个人喜欢Vuetify主要基于以下两个原因。
首先,它拥有构建应用程序所需的一切。
其次,Vuetify的文档目前是最好的。借助全面的示例和在线资源指南,使用Vuetify进行开发就不用自己摸索了。
此外,作为最大的Vue框架之一,围绕Vuetify的社区非常棒,论坛上有成千上万的开发人员回答关于开发的所有问题。
Vuetify正在从头开始重建整个框架,以支持Vue 3和Composition API。
Bootstrap是最受欢迎的免费和开源CSS和JS框架之一,可帮助开发人员构建响应式应用程序。
BootStrapVue使用Vue 2.6来提供Bootstrap v4组件和网格系统的实现,将Bootstrap所有惊人的优势带到Vue环境中。
最著名的是Bootstrap(以及 BootstrapVue)为使用基于网格系统的响应式设计提供了一个很好的解决方案。它允许开发人员根据屏幕改变DOM元素的大小。
下面这个表格,总结了可定位的不同屏幕尺寸以及对应如何编写代码。
Bootstrap自带85+个组件、45+个插件、指令以及1200+个图标。
1200+个图标在构建应用程序时非常有用。通过可访问性、社交媒体和引导用户的图标,BootstrapVue有数千种内置方法来改善应用程序的用户体验。
Vue Material是一款轻量级的库,完全按照Material Design规范构建。
功能如下:
并且,将Nuxt.js或Webpack等其他工具与Vue Material集成也很容易,从而使得渲染和部署等工作变得更为简单。
我喜欢Vue Material的一个原因是有很多漂亮的主题使用这个框架。
以下是来自于CreativeTim的一个主题。
Quasar是一个基于Vue.js的开源框架,允许开发人员为几乎所有平台构建响应式应用程序。Quasar有内置的功能可以在构建模式之间切换。
这意味着你可以制作SPA、PWA和SSR应用,甚至可以制作移动应用、桌面应用和浏览器扩展!
真的很牛了!
Quasar自带你想要从前端框架中获得的一切:
如果你正在寻找一个开销最小的强大框架,那么我强烈建议你试试Quasar。
Buefy是一个基于Bulma CSS框架的开源轻量级Vue框架。
Bulma是现代CSS框架,允许开发人员直观地创建响应式组件。使用简单的英文类名,很容易一目了然地知道类名究竟如何影响元素的样式。
例如,为不同的按钮设置样式就像下面这样简单。
Buefy通过为开发人员提供数十个内置组件,例如按钮、下拉菜单、分页等,将Bulma的简单性带入Vue。
我个人喜欢Buefy构建响应式列布局的方便性。你所要做的就是创建带有一类列的容器,然后为每一列创建带有一类列的div
。
这些列的宽度都相同
<div class="columns">
<div class="column">First column</div>
<div class="column">Second column</div>
<div class="column">Third column</div>
<div class="column">Fourth column</div>
</div>
只要有这样的代码,每列的宽度都将自动相同,并且还可以响应移动设备!
Element是一个桌面UI库,可大大提高开发速度。
它拥有开始构建应用程序所需的所有组件——布局、按钮、输入表单等。
但我最喜欢的功能是可以轻松地将自己的主题/配色方案添加到应用程序。
当然,你始终可以通过覆盖默认CSS属性来自定义颜色。此外,Element有一个Chrome扩展程序,允许自定义主题并实时预览。
这可以节省更改CSS文件的时间,方便我们查看以便更改颜色,直到找到我们喜欢的颜色。
vue-easytable是我遇到过的最强大的Vue表格组件之一。
表格组件具有许多内置功能,比如说,单元格省略号、固定/灵活的列大小调整、自定义过滤等等,可能你甚至都没有意识到这些需要。
vue-dataset集合了6个Vue组件,用于在Vue中显示具有内置过滤、分页、排序甚至自定义搜索功能的列表。
我真的很喜欢这个库的灵活性——它具有表格组件所需的所有基本功能,且没有任何局限。
你可以使用任何类型的DOM元素构建表格,而不仅仅是<table>
元素。这意味着很容易使用自定义组件,如卡片,在保持分页和搜索功能的同时显示列表。
下面是使用卡片显示数据集的示例。
vue-easy-toast是一个易于使用的工具,用于在Vue2中创建通知。
创建通知简单到说Vue.toast('Can I have everybody
s attention?')`就行。
你可以选择Toast的样式、HTML消息,我最喜欢的功能是可以添加淡入淡出或幻灯片过渡。
很简单,但非常有用。
如果你正在寻找一款出色的Vue 3兼容插件,那么vue-toaster是你的不二之选。
显示通知简单到令人发指:this.$toast.show('Hey! I'm here')
你可以通过多种方式使用vue-toaster控制通知:
对于这样简单的插件,可能性是无穷无尽的。
vue-simple-spinner正如其名,是一个简单且可自定义的微调组件,允许你控制微调器的大小、颜色、速度和文本。
只需运行npm install vue-simple-spinner --save
即可将其添加到项目中。
微调器的外观示例如下。
如果你想创建自定义的、有趣的加载器,那么vue-progress-path是你的完美选择。
它最酷的功能是你可以将你自己的.svg文件传递给它,它再根据这个svg的形状创建加载器。
看看其中的一些可能性吧!
vue-splash允许你在等待内容加载时显示启动画面。
只需一个快速组件,就可以显示logo、一些文本并更改页面的背景颜色。
启动画面的代码示例如下:
<vue-splash
:show="true"
:logo="logo"
title="Your Magnificent App Name"
color="#00bfa5"
:size="300"
:fixed="true"
/>
由此产生的启动画面:
易于使用且非常高效。
<suspense>
如果所有这些库都不能与你的用例完全匹配,那么请看<suspense>
,这是一个很棒的Vue 3功能,允许你在等待异步内容加载时显示后备内容。
sweet-modal-vue为各种弹出模式提供了一个很好的框架。
不同样式和类型的模态有不同的选项,包括:
我喜欢sweet-modal-vue的一点是它带有用于按钮的内置插槽和用于选项卡的组件,在允许进行一些下一级自定义的同时简化了开发。
vue-tiny-box为Vue提供了一个简单的灯箱画廊弹窗组件。它的轻巧且可移动意味着它支持滑动手势并且响应迅速。
虽然它不像其他一些组件那样可自定义,但它最小压缩体积为3KB的事实意味着它对于快速解决方案非常有用。
而且外观也漂亮!
Font Awesome是最流行的图标库,拥有数以千计高质量、可定制的图标。现在,Vue-Awesome将其引入Vue,允许你通过单个组件访问所有免费的图标。
你甚至可以将所有Font Awesome选项作为组件属性传入,从而使图标脉动、旋转或缩放,不但能轻松自定义图标,甚至可以为图标设置动画。
在我看来,Vue Unicons是我遇到的最被低估的图标库之一。它有超过1K的免费SVG图标。添加到项目中也非常简单。
每个Vue Unicon组件的行为类似于svg——接收名称、大小、颜色和样式等属性。
Vue Material Design可以轻松地将Google的Material Design图标添加到Vue项目中。
这个库不仅有很棒的文档,而且启动和运行速度非常快。它包含每个图标作为单个文件组件,因此你可以准确导入每个用例所需的内容。
此外,由于Vue Material Design使用SVG,因此,所有你需要做的就是更改一些prop来自定义图标的样式。
Vue-chartjs将Chart.js的全部功能带入到了这个易于使用和可重用的Vue图表组件中。
它抽象了Chart.js框架的许多基本逻辑,且仍然允许你自定义内容。
只需通过prop、本地数据或API传递数据,你就可以创建条形图、折线图等。
有一个很酷的功能是,通过使用reactiveProp
或reactiveData mixins
,你可以创建实时更新数据的响应式图表。
如果你的项目需要与Vue3兼容的Chart.js包装器,那么vue3-chart-v2可以解决你的燃眉之急。
使用自定义的renderChart
方法,你可以使用任何Chart.js图形轻松创建自己的组件。
以下是使用vue3-chart-v2制作甜甜圈图的示例。
上面就是我们要介绍的20个最棒的Vue组件库!希望里面有可以在你的项目中使用的工具。
感谢大家的阅读。我们下次再见。
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8