Size: a a a

React — русскоговорящее сообщество

2020 December 26

DS

Danil S. in React — русскоговорящее сообщество
Do you have yarn installed? PATH configured?
источник

АВ

Антон Витренко... in React — русскоговорящее сообщество
Danil S.
Объясните, пожалуйста, какая сейчас дихотомия между статическим и динамическим веб-сайтом? Вот пишут "next.js для статических вебсайтов", а что имеется ввиду под этим - не до конца ясно. (Или тыкните в годную статью)
Короче смотри, по факту есть 2 типа рендеринга, клиентский и серверный. Клиентский нужен если у тебя сайт закрыт под авторизацию либо тебе вообще не надо SEO и его суть в том что у тебя всё ренедриться непосредственно в браузере человека который зашёл на страницу. Есть ещё сервер-сайд рендеринг и его фишка в том что html и css (по желанию, можно и на клиенте) рендерятся на сервере и отдаются сразу клиенту при запросе, так гугл боты видят что страница не пустая и ранжируют её в гугле, ну а js, линки и вся динамика генерятся походу уже на клиенте (этот процес называется hydration). С этим надеюсь понятно. Теперь детальней про next js, в нём есть возможность получать данные с бека ещё на стороне сервера (так ты избавишься от асинхронности внутри компонента и сразу получишь пропсами всё). Для этого есть 2 разные функции getStaticProps и getServerSideProps. Теперь детальней о твоём вопросе. Статической страницу при сервер сайд рендере можно назвать ту которая 1 раз при билде ходит в апишки достаёт данные и генерит html и всё потом при каждом запросе клиента на эту страницу будет отдаваться тот единожды созданный html она будет только делать hydration и в апишки не пойдёт для этого как ты понял есть getStaticProps. Динамическая страница это та которая при запросе клиента ходит в бекенд за данными, на основании них генерит html а потом с сервера отдавать это клиенту (ну и дальше стандартная процедура hydration), кажется что динамический подход медленнее это в какой-то мере так но это оч нужно когда тебе надо отслеживать данные которые могут меняться например ты авторизировался и заходишь на страницу профиля, и при запросе надо пойти в бек и посмотреть действительно ли ты авторизирован если да то пустить тебя а нет редиректнуть для этого и нужна такая динамика getServerSideProps
источник

АВ

Антон Витренко... in React — русскоговорящее сообщество
Сорян за это громадное полотно(
источник

DS

Danil S. in React — русскоговорящее сообщество
Антон Витренко
Короче смотри, по факту есть 2 типа рендеринга, клиентский и серверный. Клиентский нужен если у тебя сайт закрыт под авторизацию либо тебе вообще не надо SEO и его суть в том что у тебя всё ренедриться непосредственно в браузере человека который зашёл на страницу. Есть ещё сервер-сайд рендеринг и его фишка в том что html и css (по желанию, можно и на клиенте) рендерятся на сервере и отдаются сразу клиенту при запросе, так гугл боты видят что страница не пустая и ранжируют её в гугле, ну а js, линки и вся динамика генерятся походу уже на клиенте (этот процес называется hydration). С этим надеюсь понятно. Теперь детальней про next js, в нём есть возможность получать данные с бека ещё на стороне сервера (так ты избавишься от асинхронности внутри компонента и сразу получишь пропсами всё). Для этого есть 2 разные функции getStaticProps и getServerSideProps. Теперь детальней о твоём вопросе. Статической страницу при сервер сайд рендере можно назвать ту которая 1 раз при билде ходит в апишки достаёт данные и генерит html и всё потом при каждом запросе клиента на эту страницу будет отдаваться тот единожды созданный html она будет только делать hydration и в апишки не пойдёт для этого как ты понял есть getStaticProps. Динамическая страница это та которая при запросе клиента ходит в бекенд за данными, на основании них генерит html а потом с сервера отдавать это клиенту (ну и дальше стандартная процедура hydration), кажется что динамический подход медленнее это в какой-то мере так но это оч нужно когда тебе надо отслеживать данные которые могут меняться например ты авторизировался и заходишь на страницу профиля, и при запросе надо пойти в бек и посмотреть действительно ли ты авторизирован если да то пустить тебя а нет редиректнуть для этого и нужна такая динамика getServerSideProps
Так получается статика и авторизация не совместимы что-ли? Т.е. когда сервер присылает ответ в зависимости от того, какой юзер
источник

S

Stanislav in React — русскоговорящее сообщество
Danil S.
Так получается статика и авторизация не совместимы что-ли? Т.е. когда сервер присылает ответ в зависимости от того, какой юзер
ну статика это как правило голый html, какая тут может быть авторизация
источник

АВ

Антон Витренко... in React — русскоговорящее сообщество
Ну да, статические страницы нужны когда у тебя есть какая-то хоумпейжда где ты пишешь что это за продукт и какой он крутой и да, ты получаешь данные с бека статистику какую то ещё что-то но и всё, они либо совсем не будут менятся либо будут но оч редко
источник

АВ

Антон Витренко... in React — русскоговорящее сообщество
Next хоть и генерирует html на сервере но по скольку у него есть getServerSideProps для динамики он находясь на сервере пойдёт в бек получит данные, на основе этих данных сгенерит html и отдаст клиенту
источник

DS

Danil S. in React — русскоговорящее сообщество
А есть какие-то готовые решения чтобы делать рутинг в динамических сайтах, или это вообще не из этой оперы?
источник

АВ

Антон Витренко... in React — русскоговорящее сообщество
Если ты юзаешь nextjs то там достаточно крутой роутинг
источник

АВ

Антон Витренко... in React — русскоговорящее сообщество
Он определяется файлами страниц так что у тебя файловое дерево отвечает дереву роутинга на странице (ну а если не нравится такой подход то next js поддерживает custom express server внутри которого можно легко сетнуть роуты как тебе захочется (хоть это ребята из vercel не сильно рекомендуют делать)
источник

АВ

Антон Витренко... in React — русскоговорящее сообщество
Danil S.
Так получается статика и авторизация не совместимы что-ли? Т.е. когда сервер присылает ответ в зависимости от того, какой юзер
Если мы мыслим в контексте 1 страницы то совместимы
источник

DS

Danil S. in React — русскоговорящее сообщество
Антон Витренко
Он определяется файлами страниц так что у тебя файловое дерево отвечает дереву роутинга на странице (ну а если не нравится такой подход то next js поддерживает custom express server внутри которого можно легко сетнуть роуты как тебе захочется (хоть это ребята из vercel не сильно рекомендуют делать)
Все ещё не понятно как в таком случае делать ссылки на страницы которые другой пользователь на лету создаёт
источник

АВ

Антон Витренко... in React — русскоговорящее сообщество
источник

Д

Денис in React — русскоговорящее сообщество
Антон Витренко
Короче смотри, по факту есть 2 типа рендеринга, клиентский и серверный. Клиентский нужен если у тебя сайт закрыт под авторизацию либо тебе вообще не надо SEO и его суть в том что у тебя всё ренедриться непосредственно в браузере человека который зашёл на страницу. Есть ещё сервер-сайд рендеринг и его фишка в том что html и css (по желанию, можно и на клиенте) рендерятся на сервере и отдаются сразу клиенту при запросе, так гугл боты видят что страница не пустая и ранжируют её в гугле, ну а js, линки и вся динамика генерятся походу уже на клиенте (этот процес называется hydration). С этим надеюсь понятно. Теперь детальней про next js, в нём есть возможность получать данные с бека ещё на стороне сервера (так ты избавишься от асинхронности внутри компонента и сразу получишь пропсами всё). Для этого есть 2 разные функции getStaticProps и getServerSideProps. Теперь детальней о твоём вопросе. Статической страницу при сервер сайд рендере можно назвать ту которая 1 раз при билде ходит в апишки достаёт данные и генерит html и всё потом при каждом запросе клиента на эту страницу будет отдаваться тот единожды созданный html она будет только делать hydration и в апишки не пойдёт для этого как ты понял есть getStaticProps. Динамическая страница это та которая при запросе клиента ходит в бекенд за данными, на основании них генерит html а потом с сервера отдавать это клиенту (ну и дальше стандартная процедура hydration), кажется что динамический подход медленнее это в какой-то мере так но это оч нужно когда тебе надо отслеживать данные которые могут меняться например ты авторизировался и заходишь на страницу профиля, и при запросе надо пойти в бек и посмотреть действительно ли ты авторизирован если да то пустить тебя а нет редиректнуть для этого и нужна такая динамика getServerSideProps
А ты хорош👍
источник

Р

Роман in React — русскоговорящее сообщество
Роман
кто-нбудь знает как отключить тс линтер для jsx файлов?)
Кто-нибудь знает как решить эту проблему?
источник

ИБ

Иван Бочкарев... in React — русскоговорящее сообщество
Антон Витренко
Сорян за это громадное полотно(
С разделением на абзацы читалось бы легче =)
источник

Р

Роман in React — русскоговорящее сообщество
Роман
js config выглядит так
Тут если отключить чек джс то вообще не показывает ошибок и не работают автоимпорты
источник

N

NZen in React — русскоговорящее сообщество
Danil S.
Do you have yarn installed? PATH configured?
I have been working with npm. I think it's enough already for path configurations
источник

AZ

Alexander Zayka in React — русскоговорящее сообщество
Как типизировать вложенные ThemeProvider в styled-components? Только екстендить в DefaultTheme всё, что используется?
источник

AD

AluV Daniil in React — русскоговорящее сообщество
Подскажите какие есть лучшие инструменты сейчас для debug производительности React компонентов: количество перерисовок, из-за чего происходит ререндер и так далее
источник