@react_js

Страница 766 из 5115
Kate
23.12.2016
10:27:47
помогите мне придумать проект где реакт просто необходим

Eugene
23.12.2016
10:28:16
Pomodoro Timer + ToDo сделай:D

Kate
23.12.2016
10:28:42
как вариант)

Sergey
23.12.2016
10:29:23
если "просто необходим" то помодоро таймер и тодо он не нужен

Google
Котяй Негодяй
23.12.2016
10:56:06
Существует ли решение для создания компонента, его интеграции со стейтом приложения и подписки на событие сервера? Я поясню: Допустим, весь фронтенд получает данные по своей инициативе с сервера только при загрузке и при действии пользователя. В остальных случаях обновления фронтенда происходят по инициативе сервера. Обновления приходят по вебсокетам. Допустим, если у нас отрендерился компонент "Публикация", то его контейнер сразу автоматически подписал стейт на события обновления содержания поста (автор отредактировал, удалил, изменил настройки доступа), лайки и комментарии. Если компонент исчезает со страницы, то стейт отписывается от соответствующих событий. В итоге, мы получаем магию, при которой приложение само контролирует, на что и в какой момент времени оно подписано.

n0z3r0
23.12.2016
10:56:45
В общем народ я решил проблему с ресурсами через настройки Jest moduleNameMapper

никакие хуки не помогли

"jest": { "bail": true, "verbose": true, "testPathDirs": [ "__tests__" ], "moduleNameMapper": { "\\.(css|less)$": "identity-obj-proxy", "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/fileTransformer.js" } },

вот так вот получилось

Это нужно, в package.json прописать

Adel
23.12.2016
11:03:42
from
23.12.2016
11:03:45
хм, интересно

Котяй Негодяй
23.12.2016
11:04:04
звучит как редакс)))
Это может быть и с редаксом, и без.

n0z3r0
23.12.2016
11:04:25
Народ а я вот попробовал MobX и заметил что я просто перестаю обращаться к this.state реакта :)))))

from
23.12.2016
11:04:46
что означают значки с "B" возле свойств? При наведении курсора он выдаёт хинт configurable enumerable, что является неправдой)

Adel
23.12.2016
11:04:54
Это может быть и с редаксом, и без.
ну по сути тебе нужен какой-то делегат в контейнере, который позволит подписаться-отписаться от вебсокета на маунт-анмаунт, или я тебя неправильно понял?

Котяй Негодяй
23.12.2016
11:06:38
звучит как редакс)))
Суть в том, что при рендере компонента серверу посылается событие socket.emit('subscribe', { toWhat }), а при уничтожении — socket.emit('unsubscribe', { fromWhat }).

Google
Котяй Негодяй
23.12.2016
11:06:57
Дадада.

Может есть уже велик?

Adel
23.12.2016
11:07:34
вопрос в том, как в реакте делать делегатов? через контекст, хотя можно и без него обойтись

Котяй Негодяй
23.12.2016
11:07:57
Adel
23.12.2016
11:07:57
просто сделать unrenderable component, и включать его в каждый нужный тебе контейнер

мне кажется, тебе лучше самому такое написать

я не встречал готовых велосипедов (хотя я и не смотрел специально)

Котяй Негодяй
23.12.2016
11:09:08
Приглашаю мне помочь тем, кто заинтересован. По-идее, это должна быть крутая штука.

Хотя... Здесь больше работы для бэкенда. Оборачивать контейнер — это лишнее. Мы можем просто запрашивать у сервера подписки через экшны.

from
23.12.2016
11:13:38
Существует ли решение для создания компонента, его интеграции со стейтом приложения и подписки на событие сервера? Я поясню: Допустим, весь фронтенд получает данные по своей инициативе с сервера только при загрузке и при действии пользователя. В остальных случаях обновления фронтенда происходят по инициативе сервера. Обновления приходят по вебсокетам. Допустим, если у нас отрендерился компонент "Публикация", то его контейнер сразу автоматически подписал стейт на события обновления содержания поста (автор отредактировал, удалил, изменил настройки доступа), лайки и комментарии. Если компонент исчезает со страницы, то стейт отписывается от соответствующих событий. В итоге, мы получаем магию, при которой приложение само контролирует, на что и в какой момент времени оно подписано.
по-моему ты просто описал нормальные компоненты-контейнеры Так и должно быть: компонент появился в доме — подписался. Компонент dismounted — отписался.

Котяй Негодяй
23.12.2016
11:14:49
по-моему ты просто описал нормальные компоненты-контейнеры Так и должно быть: компонент появился в доме — подписался. Компонент dismounted — отписался.
Речь идёт не о подписке на стейт фронтенда, а о подписке на события с сервера. Просто сервер рассылает события по каждому сокет-соединению индивидуально.

from
23.12.2016
11:15:53
Вообще правильная архитектура запросов с сервера (на мой взгляд) выглядит не как "раз мы на этой странице, значит нужно запросить такие-то данные", а вот так: "если появился компонент, которому нужны такие-то данные, то только тогда они и запрашиваются (запрос инициализируется компонентом)".

Котяй Негодяй
23.12.2016
11:17:23
а в чем разница?..
В том, что контейнер сам по себе на события сервера не подписывается, а сервер сам по себе не знает, что одному из клиентов вдруг надо быть в курсе о том, какие лайки приходят в данному посту.

Котяй Негодяй
23.12.2016
11:22:52
Короче. У нас есть стейт. Контейнер соединяет его с компонентом. Стейт общается с сервером по вебсокетам. Т.е. серверу приходит каждый диспатч (или не каждый), и сервер сам может диспатчить в стейт (это уже по факту реализовано). Контейнер при монтировании компонента диспатчит в стейт "хочу подписаться на такие-то события", мидлвэр стейта пересылает запрос подписки в сокет-соединение серверу. Клиент подписан. Произошло нужное событие на сервере — событие в сокет клиенту, диспатч в стейт, изменения в стейте, обновление компонента, профит.

Т.е. никаких централизованных персонифицированных механизмов общения с сервером.

Adel
23.12.2016
11:24:46
> Стейт общается с сервером по вебсокетам. -- через мидлвару или как? имхо это несколько мутное решение

Google
Котяй Негодяй
23.12.2016
11:25:14
А серверу становится доступен диспатч каждого клиента.

Котяй Негодяй
23.12.2016
11:29:19
Если сделать такую штуку, то можно создавать отдельные пакеты, содержащие в себе контейнеры и компоненты. Назовём это компонент-криейторы. На входе криейтору мы сообщаем, где находится его редьюсер, и каким экшном подписываться и отписываться.

Meteor?
Мне не понравилось.

Anton
23.12.2016
11:29:35
Logux?

Котяй Негодяй
23.12.2016
11:29:54
Logux?
А вот об этом я не слышал.

Котяй Негодяй
23.12.2016
11:31:46
Так. Я сейчас понял, что это нужно реализовать на уровне мидлвэра к сокету.

Т.е. возможность задать интерфейс подписки клиента на события сервера, а на сервере — медиатор, через который проходят все события.

Тогда можно экшны редакса привязыватьк командам подписки.

Дмитрий
23.12.2016
11:35:20
Тебе явно нужна уточка возле компьютера))

Котяй Негодяй
23.12.2016
11:35:35
Пардон?

Дмитрий
23.12.2016
11:36:16
Пардон?
https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D1%83%D1%82%D1%91%D0%BD%D0%BA%D0%B0

Котяй Негодяй
23.12.2016
11:37:02
Лол

Ну, наверн.

Не, ну я же правильно сделал, что написал сюда. =)

Vanya
23.12.2016
11:54:37
О, кстати. Пользуясь случаем. Очень похожая система у нас, как описал Котяй, разве что без веб сокетов, fetch api тянет джейсоны. Нужно получить некоторые метаданные с сервера, которые будут нужны потом большинству компонент. Где это лучше вчего сделать?

Без подписки в каждом редьюсере, это как то нарушает DRY

Google
Pavel
23.12.2016
11:56:37
я бы сделал отдельный стор для таких вещей и в момент инициализации какого-то большого контейнера, который эти компоненты охватывает, тянул бы

ну, отдельный кусок стора, в смысле

Vanya
23.12.2016
12:02:23
Да, я понял, идея вполне норм. Я только не очень понимаю, как потом передать эту дату дальше по дереву

Ладно, спасибо, буду копать дальше)

from
23.12.2016
12:35:43
Boolean?
а, да, похоже :)) хинт всё равно неверный (

Pavel
23.12.2016
12:36:51
Да, я понял, идея вполне норм. Я только не очень понимаю, как потом передать эту дату дальше по дереву
совмещать коннекты к компонентам, которые будут эти данные получать, с коннектами которые используются компонентами для их логики. главное не от контейнера передавать)

Denis
23.12.2016
13:26:38
1. https://ant.design/components/ 2. http://dev.office.com/fabric#/components 3. https://react-mdl.github.io/react-mdl/components/ Какие ещё хорошие библиотеки компонентов есть для React сегодня?

Admin
ERROR: S client not available

Dmitry
23.12.2016
13:28:12
http://react-toolbox.com/

Denis
23.12.2016
13:31:11
Норм, есть ещё что-нибудь?

Dmitry
23.12.2016
13:32:20
Если простенькое - http://elemental-ui.com/

Дмитрий
23.12.2016
13:43:02
Норм, есть ещё что-нибудь?
От парней из Palantir http://blueprintjs.com/

? ethorz
23.12.2016
13:43:09
чет там хистори даже нет

в элементале

на самом сайте)

Ҫѐҏӗѫӑ
23.12.2016
13:52:10
чо там в графкл?

подписки будут?

От парней из Palantir http://blueprintjs.com/
юзаем на внутренних проектах. нраица

@vyorkin наверное сможет поподробнее о впечатлениях рассказать

Google
Denis
23.12.2016
13:53:54
Ҫѐҏӗѫӑ
23.12.2016
13:54:05
но вообще выбирали из-за ts в первую очередь

Denis
23.12.2016
13:54:52
Итого, полный список: 1. https://ant.design/components/ 2. http://dev.office.com/fabric#/components 3. https://react-mdl.github.io/react-mdl/components/ 4. https://react-toolbox.com/ 5. http://elemental-ui.com/ 6. http://blueprintjs.com/ 7. http://react.semantic-ui.com/introduction/

Ҫѐҏӗѫӑ
23.12.2016
13:55:18
когда жс сдохнет очевидно

Vladimir
23.12.2016
13:55:27
Когда бухать перестанут

Anton
23.12.2016
13:56:12
От парней из Palantir http://blueprintjs.com/
А как же семантикюай?

Denis
23.12.2016
13:56:31
А как же семантикюай?
Но там toggle не очень – http://react.semantic-ui.com/addons/radio

? ethorz
23.12.2016
13:58:27
от мелкософта ничо так

Kate
23.12.2016
14:24:40
подскажите почему может не выводит элементы на страницу?

оно не рендерится(

див пустой(

Таймураз
23.12.2016
14:27:00
Link вместо a используй

Igor
23.12.2016
14:27:16
так там же return после console.log

Kate
23.12.2016
14:27:50
Link вместо a используй
что ты имеешь в виду? как тег?

Alexander
23.12.2016
14:28:11
оберни a в ()

Таймураз
23.12.2016
14:28:35
Ах, да И оберни jsx код внутри map в скобки и на ту же строку, что и return перенеси начало

Страница 766 из 5115