Max Kamashev: ну Вы зря так думаете. На самом деле я вступаю в спор только для того чтобы оказаться не правым, так как если бы я был на сто процентов уверен в своей провоте, я бы просто промолчал.
Вот например Вы говорите что перерисовывается не все приложение, а только та часть которая изменяется и даете ссылку на статью, за которую спасибо, я её читал очень давно, но был рад подтвердить то что я правильно представляю процесс рендера.
Вот теперь смотрите. В чистом js я приписываю любому дом-элементу класс-маркер, например drag-element и при клики на главный контейнер я проверяю наличие класса-маркера и если он присутствует, то передаю текущий элемент в js код, который проводит некие манипуляции, как например составление карты текущий курсор -> элемент, ведь давно прошли времена когда драг объект может быть только один, тот что под курсором.
Вот.. И получается что Вы написали или взяли готовую библиотеку для драг и используете её так как я написал выше. Все обыденно и стандартно и волнений не вызывает.
Но вот мы в реакте и у меня есть компонент в который я обворачиваю все приложение -
. Но сами объекты лежат намного глубже App, Вы же себе представляете уровень вложенности уведомления? А теперь я попрошу, искренне не развлекаясь, объяснить мне процесс взаимодействия этого уведомления с кодом в DragContainer. Если у Вы сможете это сделать, то реально очень мне поможете в понимании концепций реакта.
Aves: головой ударьтесь. Если Вы будите просить данные для запроса в реакт приложении в методе componentWillMount при прирендере на сервере, то получите пустую строку в лучшем случаи из-за того что этот метод выполняется перед рендером и не гарантирует что при самом рендере данные уже будут. По этому Вы противоречите самому себе обвиняя меня в пропаганде и миссии чего, в то время как сами охватывает лишь узкую часть применения этой библиотеки для рендера, которая называется реакт. Не удивился если бы судили по тодо.
А если Вы не просто в танке, а с люком на голове, то скажу сразу, что пререндер на сервере не имеет различий от обычного, так как реакт это изоморфная библиотека рендера.
Aves: ну и раз Вы в танке, то стоит добавить, что приложение должно начинать рендер, а не рендер должен провоцировать запуск приложения и загрузку данных. Главный не шаблонизатор, он лишь показывает то что ему приложение дает.
Aves: блин, ну если Вы о lifecycle методах, то скажу по другому - какого хера у Вас шаблонизатор реализует запросы? С какого хера у Вас система рендера решает что ей нужно?
Max Kamashev: наоборот. реакт показывает то что ему ДАЮТ, он не должен посылать какие-то запросы вообще. Он может попросить - "дайте мне данных" кто-то их загрузит, обработает и ему скажет "данные приготовлены возьми их". Но запросы он не должен делать. Это раз.
Два -представьте, тостер, но немного модифицированный, я могу взять уведомление и перетащив его в противоположную сторону добавить Вас в друзья, ведь в самом уведомлении есть ссылка на Ваш акк. Это логично же? Но есть одно НО, когда я тащу это уведомление, я могу тащить его хоть зигзагами, хоть волнами, это мое личное право, а это в свою очередь означает что реагировать должен весь контейнер, то есть все App.
И вот пока я буду его нести весть сайт будет пересобирать 60 раз в секунду. Это по Вашему нормально? Что меняется в самом сайте? Ничего не меняется, но так как драг контейнер взаимодействует со всем сайтом, означает то, что сайт должен быть помещен в этот контейнер, а это при драге будет делать что? Пересоздавать весь сайт заново.
Aves: ну вот по Вашим словам можно сказать что Вы даже элементарных механизмов не понимает программирования, да и самого реакта. Понимаете, когда я задавал очень простой вопрос о children, то надеялся вступить в диалог с человеком, который понимает чуть больше чем мало и выведать у него почему реакт так криво сделан. Но нет, не получилось. Ну да ладно. Что касается того что Вы подумали что я хочу их как-то использовать.. Я всего-лишь хочу использовать компоненты, как дерево компонентов реакт, а не как месиво объектов.
Но вот объясните мне какого хера Вы делаете запросы из представления и какого хера в рендере вызываете метод делающего запрос? Вы хотите не просто 60 раз в секунду делать запросы к серверу, Вы хотите 60 раз в секунду вызывать методы, которые будут делать запросы к серверу?
Aves: и почитайте что конкретно я пытался узнать когда задавал вопрос о детях. Вы же наверное тоже не знаете что дети из forEach не есть компоненты? А что это тогда? Это логика говно-реакта.
Aves: а Вы можете на этот вопрос ответить? Или Только пи*ть можете? Вот Вы же знаете например что при скроле приложение перерендеривается каждый раз заново? А это что значит? Что запросы будут делаться 60раз в секунду. Это нормально? Только не пропадайте и ответьте, а то окажется что я был прав.
Aves: начните изучать программирование и после определенного времени поймете откуда делают запросы. ну а если время не жалко или не понимаете значение слов "полное говно" то можете и реакт учить начать.
Ninja Mate: ну на самом деле компоненты не сортируют, сортируют данные, по котором потом пересоздадут компоненты. И аякс запросы из реакт компонентов тоже не делают.
Смотрите, если children это компоненты, тогда что такое this в самом компоненте? Просто если вывести в консоль child из forEach и this в любом компоненте, то выводятся совершено разные объекты, даже визуально.
Да, спасибо. Сегодня я тоже узнал об этом и совсем скоро уже сяду проверять все лично, так как время хватило только бегло пробежать api React.Children.. Только не понятно forEach работает с деревом или массивом.. Если бы с деревом, то было бы здорово, так как можно было бы и порядок сохранить.