Pull to refresh

Comments 18

UFO landed and left these words here
UFO landed and left these words here
Если кто-то поставил минусы, почему не объясните свою точку зрения? Может поможете кому-то вы выборе.

Минусов не ставил, но у редакс вижу два преимущества:


  • более развитая экосистема (я бы сказал даже на порядок более развитая)
  • с ним можно нормально работать в рамках действующих стандартов ES и чуть ли не в рамках ES3

У MobX же и экосистема победнее, и без использования декораторов (причём, как я понимаю, не той версии, которая сейчас в stage2) код сложнее воспринимается.

Сравнить mobx с redux по существу сложно. Достаточно разные вещи.
Что такое redux? Разновидность архитектуры flux. Но, как правило, в больших приложениях с mobX тоже присутствует архитектура flux для того, чтобы сделать изменение состояния более предсказуемыми и управляемыми.
Так в чем же принципиальная разница?
— Redux — иммутабельные данные, mobX — реактивные мутабельные. Т.е. в случае с Redux компонент понимает, что нужно обновиться сравнивая объекты. В случае с mobX, компонент является наблюдателем (observer) изменений тех данных, которые в нем используются.
— С MobX можно хранить состояние компонента в observable значениях, что превращает React компоненты в аналог VueJS компонент.
— С MobX проще работать с данными, проще связывать данные, легче их извлекать. Ты работаешь со ссылками, а не копиями. Как сделать с redux many to many, many to one и т.д.? есть куча решений — redux-orm, reselect. Потом со всем этим зоопарком в проекте приходится бороться, код становится менее очевидным. С MobX об этом не думаешь, просто пишешь рабочий, понятный код.

По мне Redux — это простой, надежный и эффективный инструмент, иммутабельное состояние — идеально ложится на разработку интерфейсов, особенно в вопросе тестирования. Но с со временем кодовая база превращается в мешанину (прошу прощения, но все эти редьюсеры, реселекты, норамлайзеры, все это выглядит не очень).
MobX — код проще, логичнее, компоненты без setState. Но все это достигается за счет магии. Используешь инструмент и надеешься, что 2000 рублей доната разработчикам очистят карму и тебе повезет не нарваться на баги. Легко допустить ошибку, так как подписка на изменения происходит не явно — если нет дополнительных тестов, могут быть проблемы.
Это ответ из личного опыта и крутится ли у вас в продакшене проект с mobx?
Наконец-то кто-то чётко и кратко объяснил что-почём
npm i --save-dev babel-cli

Если уж сокращаете «install» до «i», то сокращайте и "--save-dev" до "-D", а "--save" до "-S".
Порекомендовал был уже начать использовать yarn вместо npm
Возможно вам он не нужен, но инструмент работает быстрей чем npm и в этом его приоритет. Все сюда Yarn
Очень нравится yarn, но раздражает:
1) вот этот баг https://github.com/yarnpkg/yarn/issues/944 Пытаюсь поддерживать yarn.lock в своем проекте, десяток раз перезапуская yarn add, но 9 раз из 10 падает с этой ошибкой. В последнее время ошибка случается реже из-за использования --network-concurrency 1. Видимо либо в macos, либо в роутере, либо где-то еще есть проблемы с параллельностью запросов.
2) еще бывают проблемы когда мигрируешь много библиотек (например недавно перелезал на webpack2 и каюсь, может не все делал через yarn remove/add изменяя просто package.json), тут возникает такая ситуация, когда создается мешанина из версий и вебпак роняет ошибки в несуществующих файлах (да, именно так, ошибка есть, а строчки кода нет!). Помогает удаление node_modules и повторная установка.

а так да, в основном стараюсь использовать yarn, npm только при возникновении этих двух проблем.
1) За все время что использую yarn на macos 10.12 не было такой проблемы. Последний комментарий из issues/944 указывает на проблема с провайдером, как только человек стал работать «не дома» проблема ушла
2) Когда node_modules заполнялись вначале npm, а потом yarn проблемы бывают. В данном случае удаляется node_modules, yarn.lock и еще советую поставить npm-check-updates, все в тандеме не подводит.
Даёт очень быстрый старт, весь минимальным набор для начала уже есть, но, насколько я знаю, проблема в кастомизации. Хочешь изменить конфигурацию — делай eject, но обратной дороги нет.

Можно подключить вместо стандартного пакета react-scripts (в котором собственно и содержатся все конфиги и скрипты развернутого проекта, сам create-react-app лишь разворачивает проект) сторонний или свой форк. Это позволяет, в частности, иметь единый набор инструментов разработки для компании/команды/группы проектов.

Sign up to leave a comment.

Articles