@react_js

Страница 3986 из 5115
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
не спорю, может у него проблема лежит глубже но это тоже не гуд

Дмитрий
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 Есть сервис-воркер, оффлайн-плагин и динамический роутинг...когда происходит апдейт исходников, при попытке перейти на другой роут, в консоли браузере можно увидеть "пойманный" эксепшн. Полагаю, что здесь можно обработать релоад и прочие необходимые действия.

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 в продакшене используют? Как динамику на странице замутить?

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

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

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

Sergey
21.05.2018
07:57:17
я написал что тебе нужно
Понял, а фетчить после componentdidmount? Раньше никак?

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

Pavel
21.05.2018
07:57:38
Понял, а фетчить после componentdidmount? Раньше никак?
В оф доке же написано все детально.

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

там не сложно

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

Cenator
21.05.2018
07:58:13
Понял, а фетчить после componentdidmount? Раньше никак?
можно в другом месте фетчить и прокидывать в пропсы, а внутри компонента да, только после cDM

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

Phoenix»
21.05.2018
07:59:19
Понял, а фетчить после componentdidmount? Раньше никак?
Авторизация - по сабмиту/ он пресс ентер

Stepan
21.05.2018
08:11:23
можно в другом месте фетчить и прокидывать в пропсы, а внутри компонента да, только после cDM
у меня вот раньше в CWM fetch был, т.к. он при ssr отрабатывает а теперь они его убирают, как быть?

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

Stepan
21.05.2018
08:14:03
В didMount же
я же говорю он на ноде не отрабатывает

Cenator
21.05.2018
08:14:09
ну понятно ридакс, но как мне префетчить все данные?
либо redial, либо вне реакта дергать екшоны (статический метод к рутовой компоненте например)

Andrey
21.05.2018
08:14:26
UNSAFE_componentWillMount <3

Stepan
21.05.2018
08:14:53
UNSAFE_componentWillMount <3
сейчас так и юзаю, дальше либо переписывать всю логику либо в конструкторе...

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
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
тут кто-то писал, что это специально чтобы их не юзали ? и вроде наш великий Дэн Абрамов говорил, что это для специфических кейсов
в новом проекте можно подумать как без них обойтись, а при миграции таких кейсов куча)

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

ALFer
21.05.2018
08:41:55
Когда у тебя все хорошо и понятно работает делать рефакторинг только потому что им захотелось убрать метод не очень хочется
в таких случаях правильный выход: не обновляться до версий которые вынуждают делать рефакторинг

Artyom
21.05.2018
08:47:21
Google
Stepan
21.05.2018
08:54:06
setState в нем например

Artyom
21.05.2018
08:56:30
setState в нем например
getDerivedStateFromProps идеально для этого

Stepan
21.05.2018
08:56:57
getDerivedStateFromProps идеально для этого
я сравнивал предыдущие пропсы и новые

Artyom
21.05.2018
08:57:06
Эм

У тебя источник правды - стейт

Ты его обновляешь от пропсов

Какой смысл сравнивать старые и новые пропсы?

Stepan
21.05.2018
09:07:46
Какой смысл сравнивать старые и новые пропсы?
Я сравнивал не для того что бы setState сделать а для другого, эту логику мне пришлось разнести на два метода

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

Stepan
21.05.2018
09:18:18
Я вот с таким не сталкивался и мне кажется, что это проблема в архитектуре
В том и особенность реакта что он не диктует архитектуру, он просто предлагает возможности, например, lifecycle методы, я ими пользуюсь. Потом они их убирают.

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
Нет не путаю

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