Как лучше спроектировать react приложение? Делаю SPA, после выполненного прототипа, настало время делать само приложение. Возникала проблема с дублированием кода.
Для начала обернул все запросы к api в класс и вызываю теперь их.
В каждом компоненте приходится дублировать этот класс.
Можно как то создать доп. модуль с этим классом и просто импортировать его в остальные компоненты.
Может ли кто-то подсказать как это лучше сделать, или подсказать мануалы, где это расписано?
Буду рад, если направите меня в нужное русло

21 Авг 2019 в 07:02
181 +1
1
Ответы
1

Для уменьшения дублирования кода и создания модуля с классом для работы с API в React приложении вы можете использовать библиотеку axios для выполнения HTTP запросов. Вот пример как это можно сделать:

Создайте файл api.js, где будет содержаться класс для работы с API:import axios from 'axios';
const API_URL = 'https://api.example.com';
class Api {
static async fetchData(endpoint) {
try {
const response = await axios.get(`${API_URL}/${endpoint}`);
return response.data;
} catch (error) {
console.error(error);
return null;
}
}
}
export default Api;В каждом компоненте, где вам нужно получить данные с API, импортируйте класс Api и используйте его метод fetchData:import React, { useEffect, useState } from 'react';
import Api from './api';
const MyComponent = () => {
const [data, setData] = useState(null);
useEffect(() => {
const fetchData = async () => {
const result = await Api.fetchData('exampleEndpoint');
setData(result);
};
fetchData();
}, []);
return (
<div>
{data ? (
<ul>
{data.map(item => (
<li key={item.id}>{item.name}</li>
))}
</ul>
) : (
<p>Loading...</p>
)}
</div>
);
};
export default MyComponent;

Это позволит вам избежать дублирования кода запросов к API в каждом компоненте и использовать единый класс для работы с API. Также рекомендуется разделить логику работы с данными от отображения компонентов для лучшей читаемости и поддерживаемости кода.

20 Апр 2024 в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир