Сергей Сунцев, а почему так? Я реальные проекты на mobx не писал, поэтому интересно, это часто так с большими проектами или в тех случаях, когда что-то не так делали.
Я realworld пример смотрел. По нему в основном сужу.
Мне кажется излишнем, что там работу с ajax объединили со стором. А в остальном стор только с данными работает, что я считаю правильным. https://github.com/gothinkster/react-mobx-realworl...
Спасибо!
Использовал ее когда-то.
Сейчас не подходит, т.к. тема не очень красивая да и грид придется сторонний добавлять, что с темой не будет сочетаться.
Еще на такие наткнулся - https://www.creative-tim.com/bootstrap-themes/reac...
Роман Александрович, наверное тем же, чем и другим - нехилым бойлерплейтом, сложностью, кучей плагинов для уменьшения бойлерплейта или решающих какие-то проблемы редакса.
Я пробовал маленько и mobx, и redux. Mobx мне гораздо больше нравится.
Кстати, из статьи, которую вы скинули:
"Лично я открыв для себя Mobx понял, что он делает разработку мох проектов, гораздо продуктивней и эфективней" :)
Спасибо за развернутый ответ!
Не совсем правильно я вопрос задал. Под HOC я подразумевал, когда целевой компонент передается в другой как параметр функции: HOC_Component(Component).
Не знал, что без такой записи, компоненты-обертки тоже могут называться HOC компонентами.
Пример "Навигационная ссылка" вполне естественный. Я сам подобным пользуюсь. Но это не то, о чем я хотел узнать.
Меня интересовали более сложные случаи - вынесении какой-то общей логики работы в отдельный компонент, а не просто клонирование переданных props c добавкой/изменением. Вот миксины, например, позволяют работать с функциями жизненного цикла компонента и обработчиками событий.
Сегодня подумал - в HOC с чужим жизненным циклом и не нужно работать, так как у него свой есть. И также можно вмешаться в работу обработчиков событий, которые передаются через props во вложенный компонент, написав функции обертки для них и передав их через props вместо прежних обработчиков. Но тогда нужно беспокоиться о необходимости вызова переданных в HOC обработчиков событий.
Насчет очередности - у меня пока ощущение, что в сложных случаях будет сложно уследить, чтобы очередность не была важна, или вообще можно было применить несколько hoc к одному компоненту. У меня был случай, когда я в каком-то примере автора Redux поменял местами 2 HOC и пример перестал работать.
Насчет плюсов и минусов. Если сравнивать с миксинами (не будем учитывать, что они не поддерживаются в es6 классах), то я вижу следующее:
Минусы миксин:
* расширяют исходный объект;
* из-за расширения объекта есть вероятность пересечения имен свойств.
Плюсы миксин:
* легко написать дополнительный функционал для работы с жизненным циклом или обработчиками событий.
Минусы HOC:
* при написании в HOC обработчиков событий, нужно следить, чтобы в них вызывались обработчики событий, переданные через props.
Плюсы HOC:
не изменяется исходный компонент.
"Обратиться из одного HOC к другому ... укажите задачу конкретную, мне кажется тут есть более простой способ."
Я пока и сам с такой необходимостью не сталкивался. Даже придумать не просто. Давайте пропустим)
В целом понятно как делать. По сути, нужно писать модуль, который будет хранить данные о состоянии каждого компонента, у которого оно есть. К тому же должен быть функционал удаление/добавление данных в store при создании/удалении компонентов.
Странно, что это не сделано в самом фреймворке. Ведь в любом более-менее крупном проекте придется с этим столкнуться.
А если будет нужно вывести список несколько раз на странице, причем с разными фильтрами? Получается, что для каждой копии одного и того же компонента нужно будет в store заводить свою переменную (или сразу массив) для хранения фильтра конкретного компонента.
Ваш знакомый истину сказал. Хотите делать игры - делайте в свободное время свою небольшую игру или вступите в какую-нибудь команду. Интересно - когда делаешь свое и делаешь как хочешь. Если поработаете в геймдеве - скорее всего только интерес потеряете. Там вы будете делать то, что вам скажут и как вам скажут, а не то, что вы хотите.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Я realworld пример смотрел. По нему в основном сужу.
Мне кажется излишнем, что там работу с ajax объединили со стором. А в остальном стор только с данными работает, что я считаю правильным.
https://github.com/gothinkster/react-mobx-realworl...
А тут вполне нормально через inject осуществляется передача данных в props. И видно, что откуда берется.
https://github.com/gothinkster/react-mobx-realworl...