Так как есть куча «загружаемых» компонентов для Vue (поскольку у Nuxt есть свои $loading
), я просто буду использовать пример b-spinner
из BootstrapVue и Axios
в качестве HTTP-клиента :
<b-spinner ng-if="loadingProgress">
(показывает Spinner, если загрузка выполняется / отправка запроса до ответа сервера)
methods: {
sendEmail() {
//set loading progess as true
this.loadingProgress = true;
axios.post(
'[your_API_URL]',
{
// data you wanted to POST as JSON
},
).then((response) => {
// reset your component inputs like textInput to null
// or your custom route redirect with vue-router
}).catch((error) => {
if (error.response) {
alert(error.response.data); // the error response
}
});
},
Еще один пример моей формы контакта с использованием BSpinner + AJAX Ax ios POST on Formspree.io здесь
Другой компонент vue-wait
(ссылка здесь )
Надеюсь, это то, что вы ищете.