Вам не нужно использовать jQuery для установки и скрытия элементов на странице в зависимости от условия, фактически этот тип игнорирует цель того, для чего используются VueJS и другие внешние интерфейсы javascript.
Сначала вы должны добавить свойство под названием loading к вашему data
объекту
data: {
someData: [],
loading: false
}
Затем в вашей функции doStuff
удалите строки jquery и соответственно установите свойство загрузки
methods: {
doStuff: function() {
//Show Loader
this.loading = true;
//Waste 5 seconds
setTimeout(() => {
this.loading = false;
}, 5000)
}
}
Наконец, на ваш взгляд, добавьте эту строку
<div v-if="loading">Loading some data</div>
Я закончу это, сказав, что я также думаю, что ваш фрагмент немного испорчен.свойство methods
должно быть внутри определения экземпляра Vue.
var client = new Vue({
el: '#client',
data: {
someData: [],
loading: false
},
methods: {
doStuff: function() {
//Show Loader
this.loading = true;
//Waste 5 seconds
setTimeout(() => {
this.loading = false;
}, 5000)
}
}
}