не писать большие универсальные компоненты.
Пишу базовый минимальный функционал как базовый компонент
От него уже расширяюсь другие компоненты через композицию
На расширяемой компоненте я пишу новую логику, новые фичи, новые стейты и функции и тд
НО! Иногда редко, но часто бывает и так что, что то нужно из базового компонента
То есть какая то функция из базового компонента.
Я не хочу два раза дублировать. Поэтому делаю так
Поднятие вверх наверно это считается, или не знаю
const ExtendedComponent = ()=>{
let someFunction
function importData({someFunction}){
someFunction = someFunctionImported;//Здесь я импортирую
}
//дальше уже пользуюсь someFunction
return <BaseComponent exportData={importData} />
}
const BaseComponent = ({exportData})=>{
function someFunction(){
//some logic
}
useEffect(()=>{
exportData({someFunctionImported:someFunction})
}, []);
return <div>....</div>
}
Все у меня работает, просто у коллег не видела такого, у меня у самой интуитивно так делаю, и это работает
Нормально ли это ?? Обычно говорят водопад, сверху вниз. А у меня наоборот иногда снизу вверх что то передаю.
Или я неправильно композирую, неправильно пишу логику, если у меня такие надобности появляются
Вопрос, правильно ли я все делаю ??
Делаете ли вы так ??
Redux в помощь))
А разве в редаксе можно хранить функции ?? Если да функция может потерять контекст ?
Название функции ImportData, я и подумал что импортяться данные. Если же просто функции, которые выполняют что, например трансформацию данных, можно просто вынносить в папку helpers и их импортировать
А если какая-то логика комопненты с эффектами или локальными состояними, то кастомные хуки в помощь
Обсуждают сегодня