#javascript #vue.js #vuejs2 #vue-component
#javascript #vue.js #vuejs2 #vue-компонент
Вопрос:
у меня есть вычисляемое свойство, и внутри него есть вызов axios. это вычисляемое свойство мне нужно зациклить и показать результат, используя v-for
.
мое вычисляемое свойство выглядит следующим образом.
computed:{
managers(){
axios.post('/dispatcher/managers',{
'catId':this.catId,
'route':this.filters.selectedRoute,
'date':this.filters.selectedDate,
'manager':this.filters.selectedManager
}).then(response=>{
return response.data;
}).catch(err=>{})
}
}
Когда я пытаюсь выполнить цикл, managers
используя v-for
, это не работает.
Как я могу заставить это работать? Спасибо.
Ответ №1:
Согласно документам, вам, вероятно, следует использовать наблюдателя: https://v2.vuejs.org/v2/guide/computed.html#Watchers
В этом случае использование опции watch позволяет нам выполнить асинхронную операцию (доступ к API), ограничить частоту выполнения этой операции и установить промежуточные состояния, пока мы не получим окончательный ответ. Ничего из этого не было бы возможно с вычисляемым свойством.
Комментарии:
1. Спасибо за быстрый ответ. Возможно ли использовать вычисляемое свойство в этом случае и заставить его работать?
2. Не со стандартным Vue. Но есть плагин .
3. У меня не так много опыта работы с Vue, но, как правило, вы должны стараться следовать лучшим практикам, установленным фреймворком. Вы, вероятно, попадете в любое количество ловушек, если попытаетесь бороться с тем, как они хотят, чтобы вы что-то делали. Однако 1 для плагина, которым поделился @StephenThomas. Обычно я стараюсь избегать таких вещей (если только это не путь к превращению его в ядро), но это выглядит довольно всеобъемлюще.