Здравствуйте и добро пожаловать в React - Redux Universe. Я уверен, что вам это понравится, но независимо от вашего уровня подготовки или опыта, вы должны помириться с тем фактом, что существует кривая обучения, и, когда вы особенно новичок в мышлении с точки зрения компонентов, разработка другого мышления требует времени,Не волнуйтесь, мы все были там, и это пройдет. Просто дайте себе немного времени.
Боюсь, даже если мы проведем некоторое время вместе, чтобы проанализировать этот проект, я не думаю, что он облегчит вашу жизнь с точки зрения изучения React или Redux. Анализ этого проекта больше похож на помощь начинающему изучающему иностранный язык в переводе истории. Это может помочь вам понять историю, но в конце вы, вероятно, не сможете написать новую историю на языке, который вы пытаетесь выучить.
Тем не менее, я постараюсь кратко представитьответы на ваши вопросы и попытаться указать, почему анализ этого конкретного проекта не будет столь полезным, как вы ожидаете
1) Чтобы понять, откуда взялись все эти реквизиты, вам необходимо распознать следующую схему
connect(mapStateToProps, mapDispatchToProps)(Workspace))
, поэтому, в основном, благодаря функции connect
вы можете напрямую подключить свой компонент к хранилищу резервов (вы называете его глобальным состоянием)
Например, давайте возьмемпосмотрите на следующий фрагмент файла https://github.com/rovercode/rovercode-ui/blob/alpha/src/components/Workspace.js#L36
const mapDispatchToProps = (dispatch, { cookies }) => ({
updateJsCode: jsCode => dispatch(actionUpdateJsCode(jsCode)),
По сути, благодаря mapDispatchToProps
мы возвращаем объект. И поскольку мы используем mapDispatchToProps в качестве параметра функции connect
, функция connect
берет свойства возвращаемого объекта и передает их компоненту в качестве реквизита.
Благодаря этому в следующей строке https://github.com/rovercode/rovercode-ui/blob/alpha/src/components/Workspace.js#L293 нам удалось бы извлечь updateJsCode
из реквизита
Итак, хорошие новости и плохие новости. Чтобы объяснить это вам, мне нужно потратить некоторое время, чтобы построить фундаментальное понимание того, что такое реквизит, что такое компоненты высшего порядка, что такое избыточность, что такое действия и т. Д. И т. Д. Как только вы сначала изучите основы,проще соединить точки.
2) Итак, чтобы ответить на этот вопрос, мне нужно пройти через кодовую базу, чтобы понять архитектуру проекта. Важно помнить, что, несмотря на определенные рекомендации, каждый проект имеет свою собственную структуру данных и архитектуру. Создатель проектов должен принять решение с точки зрения архитектуры компонентов, структуры данных и т. Д. И т. Д. Когда вы новичок и попытаетесь понять технологию, проверив существующие проекты, вы можете запутаться в большом времени и леченииархитектура этих проектов как источник правды.
Мое скромное предложение - прежде всего, попытаться сосредоточиться на React без Redux. Поскольку в большинстве случаев вам может даже не потребоваться управление состоянием в зависимости от масштаба проекта (команда должна принять решение и т. Д.)
Вещи, которые вы, возможно, захотите изучитьРеагируют так: 1) Отношения между родителями, детьми и братьями и сестрами. 2) Реагируйте на API Hook (сравнительно новый, но использование резко возрастает, так что как новый ученик вы должны обязательно взглянуть) 3) Если вы хотите понять какой-то «старый» проект иучебные пособия, которые вы также можете узнать о методах жизненного цикла 4) Что такое презентационный компонент по сравнению с контейнерным компонентом 5) Компоненты высшего порядка
Как только вы освоитесь с основами React, вы можете продолжить с Redux. Бьюсь об заклад, все будет намного проще
Если вам нужно больше предложений, отправьте мне сообщение, чтобы я мог попытаться предоставить вам некоторые ресурсы