Size: a a a

React: русскоязычное сообщество

2020 May 20

AL

Aleksander Lemyagov in React: русскоязычное сообщество
Всем привет. Подскажите пожалуйста какте-то бест практисы по поводу загрузки данных, до показывания чего-то пользователю.

В App у меня сделано так:
render() {

       const {user: {details, isAuthorized}, globalError, initialized} = this.props;

       if (!initialized && !globalError) {
           return (<LoadingPage/>);
       }

       if (globalError) {
           return <ErrorPage code={globalError}/>
       }

       return (
           <Switch>
Это норм? или печаль беда? Использую redux
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
Норм.
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
Есть экспериментальный <Suspense />.
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
Но его не рекомендуют использовать в продуктиве.
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
Но я бы состояние <LoadingPage /> отрисовал в старом-добром html, и показывал бы сразу.
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
Чтобы охватить им не только время после загрузки кода, но и само время загрузки кода.
источник

AL

Aleksander Lemyagov in React: русскоязычное сообщество
Юра Чеботаев
Но я бы состояние <LoadingPage /> отрисовал в старом-добром html, и показывал бы сразу.
хм. а что тогда делать App компоненту, пока идет загрузка?
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
Ничего.
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
Загрузка же идет.
источник

AL

Aleksander Lemyagov in React: русскоязычное сообщество
ему просто делать return null;?
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
А. Вообще делать первый рендер после загрузки данных, необходимых для отображения skeleton-лэйаута.
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
Ну, например, профиль и права доступа. Вам нужно перед тем, как хоть что-то показать, получить профиль пользователя и права для него.
Ладно, допустим профиль у вас хранится в подписанных куках (хотя сегодня так почти не делают), но вот права доступа вы точно не захотите хардкодить.
источник

AL

Aleksander Lemyagov in React: русскоязычное сообщество
Юра Чеботаев
Ну, например, профиль и права доступа. Вам нужно перед тем, как хоть что-то показать, получить профиль пользователя и права для него.
Ладно, допустим профиль у вас хранится в подписанных куках (хотя сегодня так почти не делают), но вот права доступа вы точно не захотите хардкодить.
вся тянется с сервера. JWT токен хранится в локал сторедже для доступа к АПИ.
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
А откуда он там берется?
источник

AL

Aleksander Lemyagov in React: русскоязычное сообщество
Юра Чеботаев
А откуда он там берется?
После авторизации
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
Ок.
источник

MB

Maks Brazhnik in React: русскоязычное сообщество
Привет, Такой вопрос:
Есть стор redux.
Есть приложение с шагами
На каждом шагe редактуруется текстовые фразы (через tinyMCE) (которые берутся из стора по ключам)
1 фраза - 1 компонент (может быть глубоко вложен от самого шага)

text: {
 text_1: "blabla",
 text_2: "blabla2"
}

После редактирования пользователь сохраняет все изменения кнопкой.
Если он перешел на другой шаг не сохранив - все изменения текста на шаге не учитываются.
Как лучше хранить эти промежуточные изменения, чтобы их откатить до последнего сохраненного?
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
Обновлять состояние в сторе только когда пользователь переходит на другой шаг через сохранение.
источник

ЮЧ

Юра Чеботаев... in React: русскоязычное сообщество
Эти изменения и так хранятся в tinyMCE, их не надо как-то дополнительно хранить.
источник

MB

Maks Brazhnik in React: русскоязычное сообщество
Юра Чеботаев
Эти изменения и так хранятся в tinyMCE, их не надо как-то дополнительно хранить.
Да но на шаге их может быть 10 в разных компонентах. И в момент сохранения их нужно как-то собрать
источник