
Evgeny
23.03.2017
13:45:53
Скоро ещё v4 выпущу с измененным апи, вообще веселуха будет

Andrey
23.03.2017
13:46:53
ну ты прям реакт роутер

Evgeny
23.03.2017
13:47:11
Ну а чё
Мы во фронтэнде

Google

Max
23.03.2017
13:47:20

Evgeny
23.03.2017
13:47:47
Зачем?
Сразу выпилить нахуй
?
На самом деле я даже расставил предупреждения https://github.com/evgenyrodionov/redux-logger/blob/master/src/index.js#L114-L123

Filip
23.03.2017
13:53:38
Что дает redux-logger чего нет в redux-dev-tools?

Sergey
23.03.2017
13:57:54

Filip
23.03.2017
13:59:41
Не замечал тормозов

Sergey
23.03.2017
14:01:01
У меня был случай, когда из-за ошибки логики экшены пулялись в бесконечном цикле.
В результате UI полностью зависал, и dev-tools тоже невозможно было открыть.
А c redux-logger сразу стало видно, какие экшены спамят.

morda
23.03.2017
14:01:06
ну например remote-redux-devtools по умолчанию твои экшоны все в инторнет сливает на сайт свой (для твоего удобства)

Evgeny
23.03.2017
14:02:00
Редакс-логгер проще, вот и всё
Это разные вещи

Google

Sergey
23.03.2017
14:03:31
Вот, кстати, ещё одно преимущество: если для дебага пишешь что-нибудь в console.log, то с redux-logger можно скоррелировать логи с экшенами. А с redux-dev-tools так не получится.
В общем, redux-dev-tools подходит для того, чтобы быстренько глянуть что там в стейте и какие были последние экшены, redux-logger - для дремучего дебага.

Filip
23.03.2017
14:05:32
мне в redux-dev-tools нравится возможность переключиться быстро на любое состояние до какого-то экшна, или включить выключить изменение стейта от какого-то экшна, или глянуть дифф

Evgeny
23.03.2017
14:05:32
Попробуй collapsed: true
С ним вообще бомба
Думаю включить его по-умолчанию в v4

Sergey
23.03.2017
14:08:29

Pavel
23.03.2017
14:14:34
а как вы храните код в репозитории, бекенд и фрондент в одном репозитории или по разным? Думаю по разным разнести, но боюсь, что будет рассинхронизация, когда frondent уже требует API или какая-то фича реализована, а на беке ее еще нет

Andrey
23.03.2017
14:15:41
компоненты в отдельном
остальное в одном :)
зависит от того нужны ли эти же компоненты в других местах

Pavel
23.03.2017
14:16:58
ну у меня один проект всего, просто сделал разные репозитории, теперь думаю, а правильно ли

Alexander
23.03.2017
14:16:59
Есть какой-нибудь компонент, которые мне нарисует отношения между таблицами в БД?

Pavel
23.03.2017
14:18:00

Ruslan
23.03.2017
14:19:26

Alexander
23.03.2017
14:23:14
Ну которая нарисует что-то подобное

Roman
23.03.2017
14:24:45
подскажите плиз хорошую либу для создания подсказок поверх интерфейса. Что-то типа руководства - а теперь нажмите сюда, потом сюда и т.п.

Andrey
23.03.2017
14:26:14

Petr
23.03.2017
14:26:33

Google

Pavel
23.03.2017
14:26:54

Andrey
23.03.2017
14:26:54
о норм тема

Alexander
23.03.2017
14:27:19
Не, вообще будет просто картинка. Но думал может без нее получится

Dmitry
23.03.2017
14:28:05
mysql workbench
если это mysql, если нет, нарисуй сам в нем

Alexander
23.03.2017
14:28:33
Ну ладно, тогда будет картинкой

Dmitry
23.03.2017
14:29:24
https://www.mysql.com/products/workbench/
mysql workbench, как и сказал

Pavel
23.03.2017
14:29:32
Ну во-первых, mssql :)
Блин, геморой какой-то придумываешь, с реактом. Возьми картинку покажи, это же делов 1 мин) правда обновлять вручную

Alexander
23.03.2017
14:30:08

Roman
23.03.2017
14:33:45

MadMax
23.03.2017
14:48:37
Ребята.Добрый вечер. У меня вопрос к знатокам возник
У меня есть один компонент, основной. В нем подключены и рендерятся все остальные. Так вот вопрос. Как лучше обращатся к апи (редьюсеру), через один основной, или у каждого компонента свой редьюсер и свой сторе?

Pavel
23.03.2017
14:55:11
Обращаться нужно не к reducer, а вызывать actionCreator-ы, а уже логика заложенная вами в reducer-ы сама разберется с помощью какого reducer какие изменения произвести в state.

MadMax
23.03.2017
14:56:43
Да

Google

MadMax
23.03.2017
14:56:57
Я не правильно построил свой вопрос, в связи с неопытностью в этом вопросе
Так....
Теперь, если вы меня поняли, я уточню
У меня почти в каждом компоненте есть такая вещь
componentDidMount(){
const {dispatch} = this.props;
dispatch(getPostsAction())
}

Pavel
23.03.2017
14:57:27
Не поняли, поэтому уточните! )

MadMax
23.03.2017
14:58:02
То есть, при загрузке каждого компонента, у меня диспатчится определнный экшон

Admin
ERROR: S client not available

MadMax
23.03.2017
14:58:20
Ну и собственно, приходят данные в стейт, ререндерится компонент, и отрисовывается все
Так вот, мне кто то советовал , мол, все должно приходить в один стейт, а далее по пропсам передаватся в какие то дочерние элементы

Pavel
23.03.2017
14:58:48
Как я понимаю getPostsAction() - это получение данных из внешнего источника?

MadMax
23.03.2017
14:58:57
именно
xport function getPostsAction(){
return dispatch=>{
getPostsApi(json=>{
return dispatch(successPosts(json));
})
}
}
export function getPostsApi(successPosts,errorPosts) {
axios.get('http://localhost:3001/api/posts').then(data=> {
if (data) {
successPosts(data)
} else {
errorPosts(err)
}
}
)
}

Pavel
23.03.2017
14:59:40
Остановитесь! )

Дмитрий
23.03.2017
14:59:47
Я думаю лучше один запрос и дальше по типу <Layout news={this.props.news}>...
Если правильно понял

Pavel
23.03.2017
15:00:33
Все зависит от ваших конкретных условий. Я делаю так:
1. Все запросы, мутации и подписки делаются на уровне Page или на один уровень ниже
2. В подкомпоненты опускаются данные и поднимаются onEvent, которые в верхнеуровневом компоненте взаимодействуют с API
3. Поменяйте пожалуйста название, чтобы оно отражало суть actionCreator: fetchPosts() или аналог
getPosts() - это ближе к селекторам
Есть распространенная практика, но это при функциональных (императивных) роутерах - делать запросы на уровне роутера.

Google

MadMax
23.03.2017
15:02:24
Да да да да, почему?
Почему fetch??
Много в примерах, в видео уроках
Встречал
Но ни где не было объяснения этому

Pavel
23.03.2017
15:03:09
Потому что вы получаете данные из внешнего источника. get и set - это операции с локальными данными, зачастую мутабельные.

Mike
23.03.2017
15:04:36
Почему fetch??
тут fetch — просто слово, как противопоставление get, а не либа

Pavel
23.03.2017
15:04:51
+

MadMax
23.03.2017
15:05:00
Я понимаю)))
Павел, простите пжалусто за назойливость Что вы имеете ввиду под выражением "на уровне Page"
я хз зачем то писал, к вопросу ни как не относится...

Pavel
23.03.2017
15:17:56
> Павел, простите пжалусто за назойливость Что вы имеете ввиду под выражением "на уровне Page"
/ - page Home
/login - page Login
/price - page Price

MadMax
23.03.2017
15:18:08
Понятно
Павел
А если этот пейдж... состоит из большого множества компонентов?
Представте, в хедере список категорий отрендеренных в компоненте catList, рядом с ним поплуярные, тоже из бд. Чуть ниже товары разделенные по категориям
Я это реализовал так....

Pavel
23.03.2017
15:20:35
Пейдж почти всегда состоит из большого числа компонентов.