A loading/progress indicator provides an easy way to show the current loading status while data in a specific area or the entire document loads.
This is a curated list of the 7 best components and JavaScript libraries for Vue.js applications to create awesome loading & progress indicators during HTTP requests, routing changes, or all you want. Enjoy.
Originally published Mar 19 2020, updated Mar 22 2026
1. vue-content-loader

A Vue component for animated loading skeleton screens, aiming to replace usual loading components and deliver better experiences for users.
Features:
- Completely customizable: you can change the colors, speed, and sizes.
- Create your own loading: use the online tool to create your custom loader easily.
- You can use it right now: there are a lot of presets already.
- Performance:
- Tree-shakable and highly optimized bundle.
- Pure SVG, so it’s works without any JavaScript, canvas, etc.
- Pure functional components.
2. vue-wait

vue-wait helps to manage multiple loading states on the page without any conflict. It’s based on a very simple idea that manages an array (or Vuex store optionally) with multiple loading states. The built-in loader component listens its registered loader and immediately become loading state.
3. Facebook Style Loading Cards For Vue.js

A Vue component to easily create SVG-based loading cards just you seen on Facebook.
4. Vue Loading Spinner Collection

Just another collection of loading spinners for Vue.js based web applications.
5. Adaptive Skeleton Loading Component For Vue.js

A lightweight and themeable skeleton loader component that automatically adapts to your app content.
6. CSS Based Loading Indicators For Vue – spinkit

The spinkit library provides a collection of pretty CSS-based loading spinners for Vue.js applications.
7. Loading Animation For Vue Apps – vue-preloader

A preloader component that adds a configurable loading animation to your Vue 3 application.
More Resources:
You might not need a Vue.js component or UI library to create loading & progress indicates on your app. Here are a few resources which you can achieve it via Vanilla JavaScript or Pure CSS:
- 10 Best Loading Spinner/Indicator JavaScript & CSS Libraries
- 80+ Best Pure CSS Loading Spinners For Front-end Developers
- 10 Best Progress Bar Components For Vue.js App