@react_js

Страница 10 из 5115
Alexander
13.04.2016
14:28:53
таааак, мне нужно разбираться в матчасти)
да нет здесь никакой матчасти. надо пробовать и смотреть как удобнее/лучше. Сейчас куча всяких правил типа "редьюсеры должны быть чисыми", "нельзя использовать стейт компонентов", "компоненты должны быть поделены на тупые и умные" и т д. Будешь слепо этому следовать этому, а потом окажется, что для твоего приложения это совсем не подходит

Roman
13.04.2016
14:29:20
Слушайте, но react-reselect — это же получается просто надстройка над редьюсерами? Которая просто абстрагирует получение информации о состоянии отдельных частей стейта

То есть у меня два приложения были простые — и все эти проверки были в редьюсерах

То есть просто необходимости в дополнительной абстракции не было

Google
anoru
13.04.2016
14:30:20
думаю, не стоит прыгать прямо сейчас на reselect. Он ничего не поменяет в твоем аппе, лучше правильную архитектуру настроить, разобраться, а потом уже прикрутить

Roman
13.04.2016
14:30:22
> Есть state, а есть dependant state, первый в редьюсере, а второй — лучше в селекторах Второй рассчитыватеся из основного, да

anoru
13.04.2016
14:31:32
твой вариант с сапером я бы и сам запихал в handleClick предварительно выкинув в утилс. Не люблю логику в actionCreator, потом запустаться можно

Но бывают исключения, например

Vladimir
13.04.2016
14:32:26
а разве "игра закончена" - это не стейт?

Roman
13.04.2016
14:32:28
У меня клик прогоняется через action в reducer — а там уже осуществляются все проверки и при необходимости меняется стейт (добавляется флаг в соответствующий элемент двухмерного массива)

Соответственно на стороне компонента — это просто вызов экшна в handleClick, все, связанное с изменениями — в reducer

anoru
13.04.2016
14:33:07
export const apiGetNextPost = (data, callback) => ({   mode: 'GET',   type: 'GET_NEXT_POST',   url: 'posts/next',   data,   onSuccess: (res, dispatch) => {     if (res.test) {       dispatch(OkOkOkOkOk(res.post.id));     }          callback(res);   }, });

типа эта штука работает через мидлвару

та загрузит суперагентом инфу. Сработает onSuccess

в нем передастаться управление в кэллбек, он сработает в компоненте

и тут же ты можешь задиспатчить еще одно действие

ну, и еще сработает промис мидлвара, которая добавит _SUCCESS

Google
anoru
13.04.2016
14:33:52
и в редюсере будет 'GET_NEXT_POST_SUCCESS'

таким образом можно получить значение в редюсере, в экшене, в кэллбеке вызова в компонента

в трех местах)

Oleg
13.04.2016
14:34:28
Смотрите redux-promise-middleware

anoru
13.04.2016
14:34:34
ага

тут она тоже юзается. onSuccess нужен лишь для того, чтобы передать в кэллюек или вызвать еще один экшен, если нужные условия

L'Alchimiste
13.04.2016
14:36:08
о, привет

Artem
13.04.2016
14:36:12
мидлвэр как примерах абрамова из realworld redux?

anoru
13.04.2016
14:36:36
https://github.com/pburtchaell/redux-promise-middleware/blob/master/src/index.js

я юзаю эту, но чуть поправил, чтобы работала с еще одной мидлварой

Artem
13.04.2016
14:37:12
ну да, похожа на абрамовску

ю

anoru
13.04.2016
14:37:48
вторая мидлвара для генерации суперагент запроса. Она также делает проверку onSuccess, onFailure и как раз вызывает те функции 

http://joxi.ru/v29L6nnfGKZLkm

впрочем joxi как обычно умер )

Denis
13.04.2016
14:45:17
Ребят, а есть какая-нибудь ссылка, которая в картинках показывает, как отключать нотификации для группы?

Добавлю в описание группы

anoru
13.04.2016
14:46:10
Только если самому делать - если через веб интерфейс, то надо кликнуть на название канала. Хотя, пожалуй, ты уже знаешь)

Renat
13.04.2016
15:15:00
Олег!

Ҫѐҏӗѫӑ
13.04.2016
15:21:56
когда закончится гонка чатов по реакту?

Google
Alexander
13.04.2016
15:22:44
когда я доделаю свой. вот тогда точно все перейдут на него

Roman
13.04.2016
15:25:31
react chat fatigue

Alexey
13.04.2016
15:31:16
а потом появятся почтовые рассылки :)

Roman
13.04.2016
15:32:37
почтовые переписки!

Ҫѐҏӗѫӑ
13.04.2016
15:33:25
эхо конференции

L'Alchimiste
13.04.2016
15:37:18
до голубиной почты с дискетами ещё не дошли?

Ҫѐҏӗѫӑ
13.04.2016
16:05:39
кто в Питере? скажите, есть ли смысл идти на spb frontend сегодня тем кто не верстает?

и будет ли афтепати?

Fyodor
13.04.2016
16:17:52
Я пойду чтобы в хорошей рабочей атмосфере покодить]

Ҫѐҏӗѫӑ
13.04.2016
16:20:10
у нас MoscowJS десант

Vladimir
13.04.2016
16:20:21
кстати можно написать бота, который будет каждый день задавать вопросы. - как сделать серверсайд-рендеринг? - я хочу вставить яндекс-карты, мне писать миддлваре или вставить их в экшн? - как в реакт-роутере пропихивать пропсы в роут-компоненты? и подписать его на все чатики

Ҫѐҏӗѫӑ
13.04.2016
16:20:46
^ збс

Oleg
13.04.2016
16:24:51
Я за hr бота поработаю. - - - Работа нужна? - А если найду?

Alex
13.04.2016
16:39:29
Хорошая спека вырисовывается для ML / чатбота, обслуживающего запросы тематических комьюнити

Это пожалуй стэковерфлоу ниша

Надо посмотреть у них

Для ФБ того гляди точно склепают ботика

Всмысле для их Мессенджера

Участники комьюнити могут подписаться на отдельные треды и саппортить/обучать бота

Google
Alexander
13.04.2016
17:30:21
а как кто именует компоненты? все придерживаются рекомендации фейсбука давать всем компонентам уникальные имена? У меня уже очень длинные выходят. Боюсь рано или поздно в лимит на длинну файла упрусь :)

Artem
13.04.2016
17:31:09
еще по бэму можно попробовать )

Alexander
13.04.2016
17:33:48
ну тоже получатся длинные, получается надо в имени файла его путь отражать полюбому, что бы он был уникальным

Denis
13.04.2016
17:35:39
Я за flat структуру с уникальными именами. Если надо иерархию — даёшь небольшой префикс. Всё по алфавиту всё равно в списке.

Artem
13.04.2016
17:36:10
я сейчас пишу на нэтиве, и все сцены соответствуют именам ресурсов, которые они отражают, соответственно hotels - список, hotel - сцена с отелем и тд

Alexander
13.04.2016
17:36:55
и сколько у вас компонентов в проекте что влезают в плоские списки?

кажется больше 10-20 файлов в одной папке это уже анриал

Artem
13.04.2016
17:37:16
24 )

Alexander
13.04.2016
17:37:20
ок))

Artem
13.04.2016
17:39:39
я думаю что нибудь такое попробовать, деление на dummy smart не спасает

http://bradfrost.com/blog/post/atomic-web-design/

Denis
13.04.2016
17:40:19
У нас 300 компонент в одной папке (это ~700 файлов т.к. js+css+etc). Команда пользуется sublime fuzzy search, очень удобно. И чёткие префиксы решают.

Пробовал структуру где каждая компонента в отдельной папке — не работает, т.к. тупой Atom пишет index.js в заголовке каждой вкладки. Sublime чуть умнее, но недалеко ушёл.

Alexander
13.04.2016
17:41:28
у меня сначала были две папки для дамми и смарт, "как завещал великий ден", но потом понял, что это ужасно неудобно. Теперь кладу смарт компонент рядом с тупым компонентом если он нужен и именую так: Blah.js BlahContainer.js

Artem
13.04.2016
17:42:06
у меня все смарты обвязаны с редуксом через коннект, а дамми о стэйте ничего не знают

Alexander
13.04.2016
17:42:08
700 файлов в одной папка, уоу

Denis
13.04.2016
17:42:51
ctrl+k, ctrl+b и ctrl+p ?

Dmitrii
13.04.2016
17:42:55
если репозиторий очень большой, то уже неважно какая структура директорий :) приходится fuzzy finder пользоваться и проще наверное плоской структурой пользоваться

Alexander
13.04.2016
17:43:31
четкие префиксы это замена папок? все равно же они иерархические получаются, типа: Blog.js BlogPost.js BlogPostComment.js ?

Dmitrii
13.04.2016
17:43:33
у меня был проект на пару тысяч компонентов. если все организовывать в красивую структуру, то рано или поздно приходит '../../../../../../' ад

Google
anoru
13.04.2016
17:43:35
в пользу такой вложенности:

1) стили рядом с компонентом

2) json файлы переводом там же

3) можно раздробить на мелкие подкомпоненты, которые юзает лишь этот компонент и положит рядом (если надо), сам так не делаю

4) тесты в этой же папке

в сумме выходит файлов 10 на 1 компонент

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