No video

016. Рендеринг на стороне сервера (на примере React) - Евгений Шпилевский

  Рет қаралды 19,137

Yandex for Frontend

Yandex for Frontend

Күн бұрын

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

Пікірлер: 19
@ambraxia
@ambraxia 5 жыл бұрын
Не слышно вопросы из зала. За видео спасибо!
@nodkz
@nodkz 6 жыл бұрын
Очень мощный доклад! Сколько жениных слез, боли и потерянного времени под капотом... Могу добавить нового челленджа на месяц: - дожать Code Splitting с помощью react-loadable и будет огонь!
@nodkz
@nodkz 6 жыл бұрын
34:58 при использовании null-loader: в сгенерированном html на сервере у html-элементов не будут прописаны css классы. Будет битая верстка, если гидрация не пройдет. Или я не прав?
@dmitrysvetlov6001
@dmitrysvetlov6001 5 жыл бұрын
где послушать лекцию по вебпаку?
@user-pq3ss9ry8f
@user-pq3ss9ry8f 4 жыл бұрын
Очень круто!
@user-xy1ff4yq6r
@user-xy1ff4yq6r 4 жыл бұрын
почему так сложно
@nodkz
@nodkz 6 жыл бұрын
36:41 А почему не юзать вебпак в multi-compiller mode? js``` const bundler = webpack([clientConfig, serverConfig]); await run(frontendServer, bundler.compilers[0]); await run(backendServer, bundler.compilers[1]); ``` Все же пилим isomorphic app. И если frontendServer сгенерит файлик с ассетами и положит рядом с server.js. То серверная сбока, которая стартует следом, безболезнено подцепит нужные ассеты для SSR. Ассеты можно вот таким самопальным плагином для вебпака генерить: { apply(compiler) { compiler.hooks.afterEmit.tapAsync('CustomAssetsWriter', (compilation, callback) => { const stats = compilation.getStats().toJson({ hash: true, publicPath: true, assets: true, chunks: false, modules: false, source: false, errorDetails: false, timings: false, children: false, }); fs.writeFileSync( path.join(__dirname, '../build', process.env.NODE_ENV, 'stats.client.json'), JSON.stringify(stats, null, 2) ); fs.writeFileSync( path.join(__dirname, '../build', process.env.NODE_ENV, 'revision.txt'), REVISION ); callback(); }); }, },
@newlife8699
@newlife8699 4 жыл бұрын
Ребята а если сервер не на node, например на другом платформе это код будет работать?
@ch-co
@ch-co 6 жыл бұрын
Доклад супер. Помог переписать существующий проект на работе под ssr
@TheZionjke
@TheZionjke 2 жыл бұрын
а можно ссылку на доклад по Вебпаку? :)
@MaxNaruto1000
@MaxNaruto1000 5 жыл бұрын
quantum-router'a больше нет(
@nodkz
@nodkz 6 жыл бұрын
46:55 Запятую? Без висячих запятых!
@i_am_5_percent
@i_am_5_percent 5 жыл бұрын
next.js?
@Mike37373
@Mike37373 4 жыл бұрын
nuxt ?
@pro100skm
@pro100skm 2 жыл бұрын
​@@Mike37373 universal ?
@nodkz
@nodkz 6 жыл бұрын
1:13:10 Дырка XSS. Юзайте github.com/yahoo/serialize-javascript для сериализации data. Простая проверка: вставьте '' куда-нибуть в тексте в переменную data, и скрипт в браузере упадет.
@nodkz
@nodkz 6 жыл бұрын
Упс, не досмотрел. Там есть replace(/
@nodkz
@nodkz 6 жыл бұрын
Гы и опять не досмотрел. На клиенте обратно декодят < в
@user-td4yy8zt5u
@user-td4yy8zt5u 4 жыл бұрын
КТО!!! Кто хранит в редаксе функции?)))
PEDRO PEDRO INSIDEOUT
00:10
MOOMOO STUDIO [무무 스튜디오]
Рет қаралды 24 МЛН
Matching Picture Challenge with Alfredo Larin's family! 👍
00:37
BigSchool
Рет қаралды 52 МЛН
Server-side rendering: хайп или необходимость?
12:23
JavaScript.Ninja
Рет қаралды 33 М.
Что такое Render и Commit в React
9:53
Dev Surge
Рет қаралды 3,6 М.
014. БЭМ - Владимир Гриненко
1:18:38
Yandex for Frontend
Рет қаралды 16 М.
Сравниваем первую загрузку SSR и SPA
8:21
АйТи Синяк
Рет қаралды 20 М.