Назад к вопросам
Middle
5
Можно ли в computed сделать обращение к API?
Компании, где спрашивали
Ростелеком
Ответ от нейросети
sobes.tech AI
В computed свойствах (например, в Vue.js) не рекомендуется делать асинхронные операции, такие как обращение к API. Computed предназначены для синхронного вычисления значений на основе реактивных данных.
Если нужно получить данные с API, лучше использовать методы жизненного цикла компонента (например, mounted) или watch для отслеживания изменений и вызова асинхронных функций.
Пример правильного подхода:
export default {
data() {
return {
apiData: null
}
},
mounted() {
this.fetchData();
},
methods: {
async fetchData() {
const response = await fetch('https://api.example.com/data');
this.apiData = await response.json();
}
},
computed: {
processedData() {
// Здесь только синхронная обработка apiData
return this.apiData ? this.apiData.map(item => item.value) : [];
}
}
}
Таким образом, computed остаётся чистой функцией без побочных эффектов.