Если у Вас одностраничное приложение, то Вам определенно понадобиться индикатор загрузки компонентов и контента в них. Можно начать строить велосипед и сделать прогресс-бар самому. А можно просто взять готовое великолепное решение.
С чем имеем дело
Vue-progressbar — это простое и изящное расширение для проектов, создаваемых с помощью фреймворка VueJS. Его задача — показать пользователю текущий прогресс загрузки данных. В данном случае, элемент выполнены в современном стиле: быстро бегущая цветная полоса сверху страницы. Похожее можно встретить на многих популярных сайтах.
Как начать пользоваться
Установка:
$ npm install vue-progressbar
В main.js указываем:
import VueProgressBar from 'vue-progressbar'
Vue.use(VueProgressBar, {
color: 'rgb(143, 255, 199)',
failedColor: 'red',
height: '2px'
})
В App.vue копируем:
<template>
<div id="app">
<!-- for example router view -->
<router-view></router-view>
<!-- set progressbar -->
<vue-progress-bar></vue-progress-bar>
</div>
</template>
К примеру, в дочерних компонентах делаем что-то асинхронное:
<script>
export default {
methods:{
start () {
this.$Progress.start()
},
set (num) {
this.$Progress.set(num)
},
increase (num) {
this.$Progress.increase(num)
},
decrease (num) {
this.$Progress.decrease(num)
},
finish () {
this.$Progress.finish()
},
fail () {
this.$Progress.fail()
},
test(){
this.$Progress.start()
this.$http.jsonp('http://api.rottentomatoes.com/api/public/v1.0/lists/movies/in_theaters.json?apikey=7waqfqbprs7pajbz28mqf6vz')
.then((response) => {
this.$Progress.finish()
}, (response) => {
this.$Progress.fail()
})
}
}
}
</script>
Заключение
На страничке проекта Github можно найти подробное описание API плагина, а также его взаимодействие с api-axios.js.
В категории «прогресс баров» для VueJS, библиотека Vue-progressbar является оптимальной в плане конфигураций и быстродействия.
