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

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

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

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

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 ответов

8 просмотров

Redux в помощь))

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

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

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

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

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

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

Может кто подсказать какие требования к изображениям для обучения Yolo v8? Как то разрешение, размер выделяемого обьекта в пикселях, оптимальное кол-во изображений. А то я пыт...
Владислав😎
16
Только сейчас дошли руки до Orange pi 5. Это нормально что на нем YOLOv5s выдает 1 кадр раз в 2-3 секунды на CPU? Это без оптимизаций и прочих настроек, просто голый запуск че...
Denis
17
Доброе утро. Подскажите, если если 4 корутины, внутри которых VideoCapture, то будут ли они работать асинхронно? Т.к. нагуглил, что Videocapture в моменте может быть открыт то...
Alexander👨‍💻
19
Всем привет! подскажите пожалуйста как можно увеличить качество фото?
Evgeniy
19
А. То есть задача такая, что тип вы обучаете на разных данных модели. Получаете пачку моделей обученных на частных данных и задача стоит в том, чтобы все эти модели объединит...
Anton 『被遗忘的社会』
7
Hello everyone, ребят, к какому уровню сложности может относиться задачка по отделению облаков от неба для видео? (от 1 до 10,) *в условиях смены времени суток *при неизменно...
Merge
16
Я пожалуй ещё раз брошу клич: кто-нибудь хочет в рабство в ОЭЗ Алабугу на позицию инженера CV? Работы много, задачи сложные, ЗП высокая. Я передам контакт напрямую в HR.
Maxim 👀 Osminin #Slowpoke3D
13
Hi, has anyone worked on this dataset by chance? https://www.kaggle.com/datasets/alexteboul/diabetes-health-indicators-dataset There are 3 files inside this. I'm planning to...
Ht
1
Можно ли как то привязать видеопоток(mss, cv2 capture и тд) к одному окну? Допустим я включил видеопоток и он привязан только к одному окну в фоне. Чтобы можно было работать и...
TrL Yash?
4
Нужно ли ресайзить или кропать изображения, перед тем как скормить их yolov5?
Phantom
5
Карта сайта