

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


Stepan
21.05.2018
07:26:23
в итого хз когда и сколько раз потом колбек отработает

Anton
21.05.2018
07:26:26
Я бы сказал, что по тому куску кода что есть - гадать бесполезно.

Stepan
21.05.2018
07:27:09

Google

Stepan
21.05.2018
07:28:01
не спорю, может у него проблема лежит глубже но это тоже не гуд

Artyom
21.05.2018
07:29:21


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


Pavel
21.05.2018
07:37:46
Всем спасибо! Буду пробовать.

Artyom
21.05.2018
07:44:25
https://twitter.com/dan_abramov/status/998258353255088128
Интересный тред
https://twitter.com/sophiebits/status/997519222962929665

Sergey
21.05.2018
07:50:36
Привет всем, реакт с jquery в продакшене используют? Как динамику на странице замутить?

Stepan
21.05.2018
07:51:19

Sergey
21.05.2018
07:52:22
А как еще аяксы делать? У реакта есть встроенные методы работы с аяксом?

Cenator
21.05.2018
07:52:36

Stepan
21.05.2018
07:53:09
axios это для редакса

Phoenix»
21.05.2018
07:53:20

Google

Yaroslav
21.05.2018
07:54:03

Таймураз
21.05.2018
07:54:59

Sergey
21.05.2018
07:56:00
тебе по действию надо?
Ну к примеру форму заполнил и хочу данные на бекэнд оформить в бд. И на страницу их обратно в реакт отправить, без полного обновления страницы

Yaroslav
21.05.2018
07:56:16

Cenator
21.05.2018
07:56:18

Pavel
21.05.2018
07:56:30

Таймураз
21.05.2018
07:57:09

Sergey
21.05.2018
07:57:17

Nikolai
21.05.2018
07:57:29

Dmitry
21.05.2018
07:57:32
реакт это вообще не про запросы так то, а про рендеринг

Pavel
21.05.2018
07:57:38

Yaroslav
21.05.2018
07:57:45
почитай что такое fetch, ajax. и посмотри примеры аякса на реакт
там не сложно

Pavel
21.05.2018
07:58:09
Как ты будешь фетчить если компонента еще нет. Поэтому componentDidMount – это самое раннее когда можно.

Cenator
21.05.2018
07:58:13

Sergey
21.05.2018
07:59:08
Понял, спасибо всем)

Phoenix»
21.05.2018
07:59:19

Stepan
21.05.2018
08:11:23

Google

Cenator
21.05.2018
08:11:37

Stepan
21.05.2018
08:12:17
ридакс
ну понятно ридакс, но как мне префетчить все данные?

pepsi ¯\_(ツ)_/¯
21.05.2018
08:13:37

Stepan
21.05.2018
08:14:03

Cenator
21.05.2018
08:14:09

Andrey
21.05.2018
08:14:26
UNSAFE_componentWillMount <3

Stepan
21.05.2018
08:14:53

Cenator
21.05.2018
08:15:16
в конструкторе нельзя, ты не отследишь окончание экшена
да и просто нельзя

Stepan
21.05.2018
08:15:45
мне не нужно следить просто запустить нужные саги, которые заполнят ридакс стейт

Stepan
21.05.2018
08:18:28
и в 17 реакте придется в конструкторе это делать

Andrey
21.05.2018
08:19:08

Artyom
21.05.2018
08:19:48
В 17 в рендере можно будет

Andrey
21.05.2018
08:20:01
и в 17 реакте придется в конструкторе это делать
«When supporting server rendering, it’s currently necessary to provide the data synchronously – componentWillMount was often used for this purpose but the constructor can be used as a replacement. The upcoming suspense APIs will make async data fetching cleanly possible for both client and server rendering.»
https://reactjs.org/blog/2018/03/27/update-on-async-rendering.html#fetching-external-data
это оттуда цитата
так что, я думаю лучше подожди этот API и потерпи пока с UNSAFE :)
UNSAFE еще долго жить будет

Google

Stepan
21.05.2018
08:21:48

Andrey
21.05.2018
08:22:15
ну так они его не убрали, а перенесли, чтобы остальные не юзали его
в 17-м, как сказал @artalal - появится фетчер, и после чего cwm вообще уйдет )
но в 17-м он еще будет

Stepan
21.05.2018
08:23:26
а еще мне не понятно как componentWillUpdate на getDerivedStateFromProps заменить

Admin
ERROR: S client not available

Stepan
21.05.2018
08:24:00
который статический и в нем нельзя получить два состояния пропсов
только предыдущее

Cenator
21.05.2018
08:25:32
там еще getSnapShotBeforeUpdate

Stepan
21.05.2018
08:28:23
ну и названия конечно

Andrey
21.05.2018
08:30:41
ну и названия конечно
тут кто-то писал, что это специально чтобы их не юзали ?
и вроде наш великий Дэн Абрамов говорил, что это для специфических кейсов
по крайней мере в моих хеллоу ворлдах еще не требовалось

Stepan
21.05.2018
08:32:29

Artyom
21.05.2018
08:34:24

Stepan
21.05.2018
08:39:52
Рефакторинг ?
Когда у тебя все хорошо и понятно работает делать рефакторинг только потому что им захотелось убрать метод не очень хочется

ALFer
21.05.2018
08:41:55

Stepan
21.05.2018
08:42:54

Abu
21.05.2018
08:45:18

Artyom
21.05.2018
08:47:21

Stepan
21.05.2018
08:53:30

Google

Stepan
21.05.2018
08:54:06
setState в нем например

Artyom
21.05.2018
08:56:30

Stepan
21.05.2018
08:56:57

Artyom
21.05.2018
08:57:06
Эм
У тебя источник правды - стейт
Ты его обновляешь от пропсов
Какой смысл сравнивать старые и новые пропсы?

Stepan
21.05.2018
09:07:46

Artyom
21.05.2018
09:13:57
Я вот с таким не сталкивался и мне кажется, что это проблема в архитектуре

Stepan
21.05.2018
09:18:18

Artyom
21.05.2018
09:18:34

Andrew
21.05.2018
09:21:17
Я бы не сказал что реакт не диктует архитектуру

Furunduk
21.05.2018
09:41:09
Добрый день. Взял такой boilerplate: https://github.com/iroy2000/react-redux-boilerplate
После запуска, когда пытаюсь зайти на http://localhost:8080/, всегда редиректит на http://localhost:8080/#/ , т.е. добавляет в конце #/ .
Как его убрать? или хотя бы в какой стороне можно искать решение?
Заранее спасибо

Roman
21.05.2018
09:43:08

Andrew
21.05.2018
09:43:29
Нет не путаю

Kendr
21.05.2018
09:43:53