Привет Такой абстрактный вопрос по архитектуре Я вот часто делаю так. Стараюсь

не писать большие универсальные компоненты.
Пишу базовый минимальный функционал как базовый компонент
От него уже расширяюсь другие компоненты через композицию

На расширяемой компоненте я пишу новую логику, новые фичи, новые стейты и функции и тд
НО! Иногда редко, но часто бывает и так что, что то нужно из базового компонента
То есть какая то функция из базового компонента.

Я не хочу два раза дублировать. Поэтому делаю так
Поднятие вверх наверно это считается, или не знаю

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>
}

Все у меня работает, просто у коллег не видела такого, у меня у самой интуитивно так делаю, и это работает
Нормально ли это ?? Обычно говорят водопад, сверху вниз. А у меня наоборот иногда снизу вверх что то передаю.

Или я неправильно композирую, неправильно пишу логику, если у меня такие надобности появляются

Вопрос, правильно ли я все делаю ??

Делаете ли вы так ??

4 ответов

21 просмотр

Redux в помощь))

Кузьма-Макаров Автор вопроса

А разве в редаксе можно хранить функции ?? Если да функция может потерять контекст ?

Название функции ImportData, я и подумал что импортяться данные. Если же просто функции, которые выполняют что, например трансформацию данных, можно просто вынносить в папку helpers и их импортировать

А если какая-то логика комопненты с эффектами или локальными состояними, то кастомные хуки в помощь

Похожие вопросы

Обсуждают сегодня

1. https://www.kaggle.com/code/ahmadrezagholami2001/housing-estimation-linear-regression 2. https://www.kaggle.com/code/ahmadrezagholami2001/uncovering-quality-in-wines-logis...
Ahmadreza
1
Hi! Could you please upvote my new notebook? thanks a lot. https://www.kaggle.com/code/melissamonfared/anime-character-generation-dsgan-gan
məru
4
upvote plz https://www.kaggle.com/code/bassetkerouche/swapping-face?scriptVersionId=207300096
benkerrouche Statoinary
1
-- Привет всем. -- Есть csv, проблема в том что он содержит очень много повторов по столбцам и по строкам. -- Решил перекинуть это в базу данных, чтобы было проще. Но я не ша...
Oleg Ivanov
1
Как считаете - вопрос на собесе: «Как быстрее всего запустить ec2 машину в aws (в чистом аккаунте) и показать вывод от любой команды с нее» не очень ли сложный для условного м...
Sergey
50
Господа, у меня вопрос. Что вообще такое этот ваш data science и data scientists? А то гуглю, а мне какую-то расплывчатую фигню говорят.
Inkosta
44
Исходя из ваших комментариев, получается, что чтобы получить марты в CH из данных в PG, неправильно тянуть сырые данные в CH и там их обрабатывать, лепить справочники и джойни...
unhingedlunatic
42
Hi could you please help me with my two new projects? https://www.kaggle.com/code/hesankazemnia/rice-image-classification-cnn-pytorch https://www.kaggle.com/code/hesankazemnia...
Hesan
6
hi, Can you upvote? https://www.kaggle.com/code/durjoychandrapaul/rag-q-a-system-by-langchain-huggingface-for-pdf?scriptVersionId=204704280
A
1
Could you upvote and comment please? https://www.kaggle.com/code/tatianapetrushkevich/beginner-images https://www.kaggle.com/code/tatianapetrushkevich/python-for-beginners1 ...
Tazziyana
7
Карта сайта