Встречается на собеседованиях • сегодня
Какие антипаттерны не будешь использовать при создании компонента с асинхронной логикой без использования Redux Toolkit
1. **Проп-дриллинг колбэков** - вместо передачи колбэков через много уровней, лучше использовать контекст или композицию компонентов.
2. **Логика в UI-компонентах** - выноси асинхронные запросы и состояние в кастомные хуки или сервисы.
3. **Размазанная логика загрузки** - не дублируй `isLoading` в разных местах, используй единый источник правды.
Пример плохого подхода:
```jsx
function Component() {
const [data, setData] = useState(null);
const [isLoading, setIsLoading] = useState(false);
useEffect(() => {
setIsLoading(true);
fetchData().then(data => {
setData(data);
setIsLoading(false);
});
}, []);
if (isLoading) return ;
return ;
}
```
Лучше так:
```jsx
function useAsyncData() {
const [state, setState] = useState({ data: null, loading: false });
useEffect(() => {
setState(prev => ({...prev, loading: true}));
fetchData().then(data => {
setState({ data, loading: false });
});
}, []);
return state;
}
function Component() {
const { data, loading } = useAsyncData();
if (loading) return ;
return ;
}
```

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы