@react_js

Страница 3985 из 5115
Yaroslav
20.05.2018
22:57:29
юзаю реакт редакс, при апдейте стора, будет рендориться только если стор используется в функции render?

Andrey
20.05.2018
22:58:33
Будет рендерится что? Ну хотя бы читайте свои сообщения перед тем как отсылать.

Kendr
20.05.2018
22:58:34
юзаю реакт редакс, при апдейте стора, будет рендориться только если стор используется в функции render?
Если пропесы обновляются, вне зависимости от того юзаются или нет, насколько я знаю

Yaroslav
20.05.2018
22:59:35
Будет рендерится что? Ну хотя бы читайте свои сообщения перед тем как отсылать.
компонент будет ререндориться при изменения стора, только в том случае если стор используется в функции render?

Google
Andrey
20.05.2018
23:00:07
компонент будет ререндориться при изменения стора, только в том случае если стор используется в функции render?
Ререндер не зависит от того, что используется в рендере. Ререндер зависит только от проспсов и стейта.

А с пропсами работа уже зависит от того, что написано в cNU

Или как там этот метод лайфсайкла называется? Короче, лучше уточнить в документации.

Kendr
20.05.2018
23:01:11
cnu?

ето че

Дмитрий
20.05.2018
23:01:19
Лол, так работают промисы же

Andrey
20.05.2018
23:01:31
А, sCU, вспомнил.

Kendr
20.05.2018
23:01:45
Работа с пропсами не зависит от шуд компонент апдейт

Рендерер зависит

Andrey
20.05.2018
23:02:03
А чём проблема?

Alexander
21.05.2018
03:27:51
Есть такой массив роутов type Routes = { path: string, component?: React.Component, routes?: Array<Routes> } const routes: Array<Routes> = [ { path: '/', component: Main, }, { path: '/auth', routes: [ { path: '/', component: Auth }, { path: '/register', component: Register } ] } ]; Как такое распарсить? Может уже есть готовые решения?

Pavel
21.05.2018
03:49:52
Всем добрый день! По долгу службы временно вылез из бэкенда и делаю SPA на react/redux. Все отлично, но хотел бы прояснить банальные вещи. Подскажите люди добрые: 1) Как у клиента обновлять приложение? Деплои идут часто, а в SPA нужно обновить страницу, чтобы изменения вступили в силу, что не гуд. Мне нужно, чтобы приложение ОБЯЗАТЕЛЬНО рефрешнулось на клиенте при деплое. Как вы поступаете? Контроль версии по вебсокетам? Есть ли готовые ноу-хау? 2) При первом подходе я использовал так называемую duck-структуру проекта, где в сторе на каждый scene был отдельный набор экшенов, редьюсеров и т.д. Там же в экшенах были редиректы. Т.е. при успешном добавлении комментария сделай редирект по react-router на страницу поста. НО! Как я потом понял, теряется смысл редакса, я узнал в процессе больше про всякие селекторы и т.д. и как мне кажется duck-структура по философии это не к redux. Теперь вопрос: Какую структуру вы используете для больших приложений? Как работаете с редиректами в redux?

Спасибо всем, кто поможет

Google
Александр
21.05.2018
03:52:06
на learn.javascript.ru как раз в продвинутом курсе по реакт юзают duck

если есть деньги вы можете записаться на курс, иначе этот курс можно найти тут https://coursehunters.net/

Сам курс http://learn.javascript.ru/courses/advreact

по редакс еще есть хороший курс тут https://codedojo.ru/home

его так же можно найти на курсхантерс

Pavel
21.05.2018
03:55:37
Я прошел и на udemy заранее и на egghead.io и книгу от Дэна Абрамова прочитал. Но там совсем мелкие приложения. И по деплою особо ничего нет.

Александр
21.05.2018
03:56:10
мне кажется - вы не можете перезагрузить страницу пользователя после обновления

Pavel
21.05.2018
03:56:11
Т.е. сейчас две проблемы стоят: 1) Обновление SPA при деплое на клиенте 2) Масштабирование (когда экшенов до 1000 или больше)

Александр
21.05.2018
03:57:01
во vue структура похожа на duck - имею ввиду организацию хранилища

Pavel
21.05.2018
03:57:06
мне кажется - вы не можете перезагрузить страницу пользователя после обновления
А надо) Иначе никак. Это корпоративное финансовое ПО. Где нужно 100% синхрон бэка и фронта

Александр
21.05.2018
03:57:11
это было решено разделением на модули

А надо) Иначе никак. Это корпоративное финансовое ПО. Где нужно 100% синхрон бэка и фронта
а если типа убивать аторизацию? и просить перенаправлять на логин?

Pavel
21.05.2018
03:58:38
А логин тоже в рамках SPA на JWT

Раньше аутентификацией управлял бэкенд-фреймворк и пускал в SPA через себя. Я убивал аутентификацию но это спасает на 90% (все таки есть действия не требующие аутентификации и в этом случае рефреша не было). Но теперь это 100% SPA на отдельном сервере и такая штука не пройдет.

Много всего в самом приложении

Поэтому нужен принудительный рефреш

Я слышал, что как-то можно сервис-воркером хэш-сумму основного js файла постоянно считывать и делать банальный window.refersh при несовпадении

Александр
21.05.2018
04:03:02
тоже сейчас пытаюсь силами гугла найти - пока безрезультатно

Pavel
21.05.2018
04:03:25
Да, в интернетах почему-то мало инфы.

Ну может найдутся те, кто решил эту проблему у себя

Google
Pavel
21.05.2018
04:21:40
ПОка продублировал в gitter и написал в твиттер Дэну Абрамову.

Maxim robox
21.05.2018
04:47:28
Я слышал, что как-то можно сервис-воркером хэш-сумму основного js файла постоянно считывать и делать банальный window.refersh при несовпадении
Я вижу такой костыль: Помимо index.html, куда вкладывается хешированный урл до файла с бандлом, генерить вебпаком аналогичный файлик рядом, где будет только этот урл. В своём приложении дёргай этот файлик раз в минуту. Если поменялся урл, то window.refresh

Sergey
21.05.2018
05:24:42
Привет. Есть условная задача: четыре компонента (один из которых посредник), когда у любого из компонентов меняется состояние, то все остальные реагируют на это (за ислючением посредника) и изменяют свое. Как бы вы реализовали?

Sergey
21.05.2018
05:34:28
Спасибо, а если без контейнера состояний?

D.
21.05.2018
05:37:49
Я слышал, что как-то можно сервис-воркером хэш-сумму основного js файла постоянно считывать и делать банальный window.refersh при несовпадении
SW сам считает хеш и реагирует как раз на изменение хеша. После чего перезапускается. Наверняка можно как-то обыграть жизненный цикл sw (https://developers.google.com/web/fundamentals/primers/service-workers/#lifecycle). Но это не точно. Или хеш файла может измениться без запроса?

Alexander
21.05.2018
05:43:45
Как во flow привести полученные данные с апи к интерыейсу? Нужна аналогичная запись, которая на ts выглядит так: const result = response.data as IResult;

Oleksandr
21.05.2018
05:46:00
Всем добрый день! По долгу службы временно вылез из бэкенда и делаю SPA на react/redux. Все отлично, но хотел бы прояснить банальные вещи. Подскажите люди добрые: 1) Как у клиента обновлять приложение? Деплои идут часто, а в SPA нужно обновить страницу, чтобы изменения вступили в силу, что не гуд. Мне нужно, чтобы приложение ОБЯЗАТЕЛЬНО рефрешнулось на клиенте при деплое. Как вы поступаете? Контроль версии по вебсокетам? Есть ли готовые ноу-хау? 2) При первом подходе я использовал так называемую duck-структуру проекта, где в сторе на каждый scene был отдельный набор экшенов, редьюсеров и т.д. Там же в экшенах были редиректы. Т.е. при успешном добавлении комментария сделай редирект по react-router на страницу поста. НО! Как я потом понял, теряется смысл редакса, я узнал в процессе больше про всякие селекторы и т.д. и как мне кажется duck-структура по философии это не к redux. Теперь вопрос: Какую структуру вы используете для больших приложений? Как работаете с редиректами в redux?
1. Подключите к проекту девопсов

Anton
21.05.2018
05:49:09
Sergey
21.05.2018
05:50:15
Я думал о чет-то типа паб/саб, но сильно заморочно получается. Спасибо

Anton
21.05.2018
05:51:50
Я думал о чет-то типа паб/саб, но сильно заморочно получается. Спасибо
Можно проще, если объяснишь как они должны меняться.

Самый простой вариант - берём State из React-powerplug, засовываем в контекст. Готово.

Sergey
21.05.2018
05:52:46
Ну представим, что у нас три компонента, у каждого по кнопке. Я нажимаю на кнопку первого компонента и состояние двух других меняется. При этом компоненты ничего не должны знать друг про друга

Anton
21.05.2018
05:54:18
Pavel
21.05.2018
05:54:24
1. Подключите к проекту девопсов
К сожалению у меня нет средств для позиции девопса. И задача не кажется мне такой, что требуется специализированный человек.

Oleksandr
21.05.2018
05:55:30
Ну хз, у меня на проекте такая же хрень и у нас есть девопс который занимается билдом

Sergey
21.05.2018
05:56:44
А кто состояние меняет? Тебе точно нужно состояние и переключение засунуть пропсами. А откуда их взять - без разницы.
Ну вот некий компонент посредник, а каким он именно должен быть я не понял, поэтому и пришел за советом

Впрочем, я разобрался, спасибо за советы )

D.
21.05.2018
05:58:16
Спасибо всем, кто поможет
Хз насчет ноу-хау, мы не кешируем индекс хтмл, ко всем остальным ресурсам добавляем таймстемп с временем деплоя и кешируем.

Спасибо всем, кто поможет
Если приложение живет долго без релоада, наверное, самое решение в лоб с нашим подходом - сверять на бекенде таймстемп (читать как версия) с текущей версией проекта и послать релоад. Но это мысли вслух, не выглядит нормальным решением

Google
Григорий
21.05.2018
06:16:40
Я слышал, что как-то можно сервис-воркером хэш-сумму основного js файла постоянно считывать и делать банальный window.refersh при несовпадении
Учти еще то что браузер кеширует, так что только location.reload(true); может помочь, но вообще если страница сама по себе будет обновляться это будет странно. Ну и зачем высчитывать на стороне клиента хеш от бандла если можно просто держать версию в конфигах?

Admin
ERROR: S client not available

Alexander
21.05.2018
06:17:57
Как в redux-act убрать цифру вначале названия экшена?

Pasha
21.05.2018
06:50:43
Вопрос к гуру, почему данный код создаёт утечку памяти? const someChannel = channel() export function* watchSomeChannelSaga() { while (true) { const action = yield take(someChannel) yield put(action) } } export function* testSaga() { try { yield put(actions.someAction1()) const callback = (signature) => { someChannel.put(actions.someAction2(signature)) } yield call(sign, callback) } catch (error) { yield put(actions.someActionFailed(error)) } } export default function* () { yield fork(watchSomeChannelSaga) } ___ У меня мозг взрывался пока я искал где это происходит, а теперь не понимаю какого хрена. На вопрос зачем так делать - мне нужно задиспатчить экшен, при завершении некого действия в функции из довольно старой либы, которую нельзя заменить. И я н придумал ничего лучше чем сделать это через такой колбэк. Если есть идеи получше, то с радостью выслушаю.

Pasha
21.05.2018
06:56:48
sign промис возвращает?
нет, в том то и дело что она ничего не возвращает)

Stepan
21.05.2018
06:57:00
и потом просто делай const signature = yield call(sign); yield put(actions.someAction2(signature))

Pasha
21.05.2018
06:58:47
я не имею никакого влияния на функцию sign

всё что я могу сделать, передать ей колбэк

Stepan
21.05.2018
06:59:46
я не имею никакого влияния на функцию sign
это мешает обернуть в промис?

Pasha
21.05.2018
07:00:47
да блин, говорю же, она ничего не возвращает!

данные я откуда возьму?

Stepan
21.05.2018
07:01:25
данные я откуда возьму?
а откуда ты signature берешь?

Pasha
21.05.2018
07:01:34
эта либа её передаёт в колбэк

Stepan
21.05.2018
07:02:16
погугли что вроде callback to promise если не понимаешь о чем я говорю

Dmitrii
21.05.2018
07:14:33
Всем добрый день! По долгу службы временно вылез из бэкенда и делаю SPA на react/redux. Все отлично, но хотел бы прояснить банальные вещи. Подскажите люди добрые: 1) Как у клиента обновлять приложение? Деплои идут часто, а в SPA нужно обновить страницу, чтобы изменения вступили в силу, что не гуд. Мне нужно, чтобы приложение ОБЯЗАТЕЛЬНО рефрешнулось на клиенте при деплое. Как вы поступаете? Контроль версии по вебсокетам? Есть ли готовые ноу-хау? 2) При первом подходе я использовал так называемую duck-структуру проекта, где в сторе на каждый scene был отдельный набор экшенов, редьюсеров и т.д. Там же в экшенах были редиректы. Т.е. при успешном добавлении комментария сделай редирект по react-router на страницу поста. НО! Как я потом понял, теряется смысл редакса, я узнал в процессе больше про всякие селекторы и т.д. и как мне кажется duck-структура по философии это не к redux. Теперь вопрос: Какую структуру вы используете для больших приложений? Как работаете с редиректами в redux?
по вебсокетам обновляем страницу

Google
Pasha
21.05.2018
07:16:13
А что конеретно течет и указывает на эту функцию?
сервер (для серверсайд рендеренга), а указывает то что когда я её убираю, то утечки нет) а так за сутки контейнер раз 5 рестартует, ибо лимит памяти закнчивается)

Anton
21.05.2018
07:16:50
а кто запускает эту сагу и сколько раз?

(первую или вторую?)

Pasha
21.05.2018
07:20:15
а кто запускает эту сагу и сколько раз?
запускается по экшену, типо так: export default function* () { yield takeLatest( actions.SOME_ACTION, watchTestSaga, api ) }

sanqa
21.05.2018
07:20:45
сага от санка отличается только тем что там генераторы а там промисы ?

Cenator
21.05.2018
07:21:26
сага это магия, санки просты и надежны как валенок

Anton
21.05.2018
07:23:34
+1, попробуй его вынести

Stepan
21.05.2018
07:24:02
А сага тут каким боком?
Таким что он ее использует?

Anton
21.05.2018
07:24:35
Таким что он ее использует?
А промис тут каким образом? Не могу понять как сочетание промиса и саги решит проблему

Pasha
21.05.2018
07:25:31
А промис тут каким образом? Не могу понять как сочетание промиса и саги решит проблему
я думаю что возможно всё дело в этой хитрой(тупой?) схеме с channel, а промис позволит от неё отказаться...

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