Немного обо мне: свободно говорю на JS и сопутствующих технологиях, понимаю C#. Есть небольшой опыт с Unity3D, немножко знаю Blender. Автор двух текстовых игр: kitmanov.name/zmb.html и kitmanov.name/forest/forest.html. В идеале хочу в игросценаристы.
Сергей Сунцев: как по мне, любое приложение крупнее чем из двух компонентов на реакте, без библиотеки управления состоянием — кровь, пот и слезы:)
А решение такое (c Redux), у вас будут action'ы, которые ходят на сервер за данными. Эти экшены передаются в компонент с помощью react-redux, так что в компоненте вы просто пишете: this.props.fetchCurrentUser(). MobX, к сожалению, я совсем не знаю.
В принципе, то, что вы ищете, называется Dependency Injection — это такой паттерн, когда в класс/компонент зависимости передаются извне в автоматическом режиме. В ангуляре есть из коробки (некрасивый, но рабочий). Можете поискать какую-то реализацию для React, но в общем-то react-redux это и делает.
смелое заявление, я с вебпаком с лета воюю и до сих пор нихера не понимаю:)
По всей видимости, однофайловые компоненты вы не использовали, препроцессоры и транспиляторы тоже, если вы конфиг не писали. Так в чем проблема просто поставить webpack@2, и запустить его так же? В конце концов, сходить на официальный сайт и почитать доку по миграции, как это сделали все в этом треде? Вот когда не получится, тогда и приходите с конкретной проблемой, мол, сделал вот так, хотел вот это, а получилось вот эдак. В текущей ситуации можно только посоветовать смотреть готовые бойлерплейты и разбираться, что и откуда.
alexmoran: ну нету в нативных промизах чего-то типа Promise.any. В bluebird тоже нету, а это была единственная Promise-либа, которую я согласен ставить. Есть решение в async, но я не знаю, поддерживают ли они промизы, или все надо будет разворачивать в continuation-passing style.
Если вдуматься, в этом есть смысл -- зачем добавлять отдельный метод, если это тривиально делается на существующем API? Тем более что такой кейс возникает нечасто, обычно все-таки надо чтобы все операции успешно завершились.