Comments 10
const items = React.useState([]);
React.useEffect(() => {
async function fetchItems() {
await fetched = fetchItems();
setItems(fetched);
}
});
На всякий случай проверил оригинал. Да, там тот же самый код. Наверное опечатка и автор забыл ()
. Сейчас у него этот хук вызывается на каждый рендер. Внутри он создаёт новый метод (fetchItems
). Метод не вызывается. По сути хук ничего не делает. А даже если и вызвать этот метод, то он уйдёт в себя, в вечную рекурсию, т.к. он внутри себя вызывает сам себя.
Плюс useState
работает не так.
Полагаю имелось ввиду что-то вроде этого:
const [items, setItems] = useState([]);
useEffect(() => {
fetchItems().then(setItems);
}, [] /* on mount */);
+3
Мне кажется стоит перестать переводить medium. Особенно столь неизберательно. Количество нискосортных статей там просто зашкаливает. Автор статьи похоже свой код писал "от руки" даже не вглядываясь, что он там пишет.
+10
«2. Как следует познакомьтесь с React-хуками»
Согласен что знать что это такое, но я бы порекомендовал не использовать хуки в реальных проектах.
Согласен что знать что это такое, но я бы порекомендовал не использовать хуки в реальных проектах.
0
а можно подробней почему? я изучаю реакт и планирую потом на джуна(фронт) пробоваться, но я не очень понимаю что мне надо знать для этого, т.е. что должно еще прилагаться к реакту, redux например, typescript, axios или еще что то?
0
хуки — в самой идее все ок, особенно для простых компонентов, ад начинается когда в компоненте на хуках много логики, в таком коде черт ногу сломит, на обычных классах проще писать такой код.
redux — я бы тоже не рекомендовал использовать, только для «shared» данных по всему приложению(хотя такое лучше избегать :) )
typescript — имхо must have
axios, lodash, etc. — на свой вкус тут абсолютно не принципиально
redux — я бы тоже не рекомендовал использовать, только для «shared» данных по всему приложению(хотя такое лучше избегать :) )
typescript — имхо must have
axios, lodash, etc. — на свой вкус тут абсолютно не принципиально
-1
спасибо
0
Логику же можно выносить в селекторы, вспомогательные функции, свои хуки создавать
0
Если в компоненте много логики, то её удобно вынести, например, в mobx-овый стор, а этот стор передавать во вьюшку с помощью хука, который сможет обеспечить стору жизненный цикл, например, очистку при анмаунте, или даже обновления. Весьма подходит, если надо пошарить логику между вьюшками для десктопа и мобилы.
Плюс, свои хуки для различных кейсов, где надо на события документа подписаться, или с таймерами что-нибудь, и т.д.
Понятное дело, если мы попробуем прямо в функциональном компоненте с вёрсткой что-то хитрое нарисовать хуками, это будет спагетти. Напрямую можно только по мелочи.
Плюс, свои хуки для различных кейсов, где надо на события документа подписаться, или с таймерами что-нибудь, и т.д.
Понятное дело, если мы попробуем прямо в функциональном компоненте с вёрсткой что-то хитрое нарисовать хуками, это будет спагетти. Напрямую можно только по мелочи.
0
Почему не использовать? Если есть стабильная версия реакта которая заточена под хуки то почему бы не юзать? И все множество популярных библиотек так или иначе переходят на хуки, просто кому-то удобнее так, а кому-то по другому, в классах проще написать *некий структурированный код* — который при первичном ознакомлении интуитивно понятен, но с другой стороны зачем вызывать конструктор, баиндить контекст для какого-то компонента типа `Item` с примера. Я писал и на классовых компонентах и на хуках (последний год) как по мне если соблюдать первые 2 принцыпа солид и `Separation of concern` то можно получить такойже харашо структурированный код.
0
Sign up to leave a comment.
React-разработка: 6 путей к профессиональному росту