Skip to content

Commit e122f57

Browse files
Alex-Sokolovposva
authored andcommitted
[READY TO MERGE] Russian translation (#13)
* [RU] init commit * langs.md add russian * basic.md переведён * basic.md тире и переведены примеры * universal.md переведён * structure.md переведён * routing.md переведён * data.md переведён * hydration.md переведён * bundle-renderer.md переведён * build-config.md в процессе * bundle-renderer.md исправлена ссылка * build-config.md переведён * css.md переведён * head.md переведён * cache.md переведён * streaming.md переведён * SUMMARY.md допереведён * api.md начат перевод * build-config.md доработки * bundle-rendered.md доработки * api.md допереведён * api.md исправлены опечатки * basic.md исправлены опечатки * build-config.md исправлены опечатки * bundle-renderer.md исправлены опечатки * caching.md исправлены опечатки * css.md исправлены опечатки * data.md исправлены опечатки * head.md исправлены опечатки * hydration.md исправлены опечатки * routing.md исправлены опечатки * streaming.md исправлены опечатки * structure.md исправлены опечатки * universal.md исправлены опечатки * api.md доработки к 2.3.1 * build-config.md доработки к 2.3.1 * bundle-renderer.md доработки к 2.3.1 * head.md доработки * routing.md исправлен пример * README.md переведён * Исправления очепяток * Стилистические исправления
1 parent 90d8bee commit e122f57

16 files changed

+1651
-0
lines changed

LANGS.md

+1
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
* [English](en/)
2+
* [Русский](ru/)

ru/README.md

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Руководство по серверному рендерингу Vue.js
2+
3+
> **Примечание:** для этого руководства требуются следующие версии Vue и библиотек:
4+
> - vue & vue-server-renderer >= 2.3.0
5+
> - vue-router >= 2.5.0
6+
> - vue-loader >= 12.0.0 & vue-style-loader >= 3.0.0
7+
8+
> Если вы ранее использовали Vue 2.2 с серверным рендерингом, вы заметите, что рекомендуемая структура кода теперь [немного отличается](./structure.md) (с новой опцией [runInNewContext](./api.md#runinnewcontext) установленной в `false`). Ваше существующее приложение по-прежнему будет работать, но советуем внести изменения с учётом новых рекомендаций.
9+
10+
## Что такое серверный рендеринг (SSR)?
11+
12+
Vue.js — это фреймворк для создания приложений, выполняемых на клиенте (client-side). По умолчанию компоненты Vue создают и манипулируют DOM в браузере. Однако, также возможно рендерить те же компоненты в HTML-строки на сервере, отправлять их в браузер, и наконец «гидрировать» статическую разметку в полностью интерактивное приложение на клиенте.
13+
14+
Приложение Vue.js отрендеренное на сервере также можно считать «изоморфным» или «универсальным», в том смысле, что большая часть кода приложения **является общей для сервера и клиента**.
15+
16+
## Нужен ли вам SSR?
17+
18+
По сравнению с традиционным SPA (Single-Page Application), преимуществами серверного рендеринга будут:
19+
20+
- Лучшее SEO, поскольку поисковые роботы будут видеть полностью отрендеренную страницу.
21+
22+
Обратите внимание, что на данный момент Google and Bing могут без проблем индексировать синхронные приложения JavaScript. Ключевое слово здесь — синхронные. Если ваше приложение запускается с индикатором загрузки, а потом догружает контент через Ajax, то поисковый робот просто не будет дожидаться окончания загрузки. Это значит, что если у вас есть асинхронный контент на страницах где SEO важен, то может потребоваться серверный рендеринг.
23+
24+
- Лучшие показатели времени до отображения контента (time-to-content), особенно при плохом интернете или на медленных устройствах. Для разметки, отрендеренной на сервере, не требуется дожидаться пока весь JavaScript будет загружен и выполнен, поэтому ваш пользователь увидит полностью отрендеренную страницу раньше. Как правило, это приводит к лучшему пользовательскому опыту и может быть критичным для приложений, где время до отображения контента напрямую связано с коэффициентом конверсии.
25+
26+
Следует учитывать и некоторые компромиссы при использовании серверного рендеринга:
27+
28+
- Ограничения при разработке. Код только для браузера может быть использован лишь в определённых хуках жизненного цикла; некоторые внешние библиотеки могут нуждаться в особой обработке, чтобы иметь возможность запускаться в приложении с серверным рендерингом.
29+
30+
- Более сложные требования по настройке и развёртыванию сборки. В отличие от полностью статичного SPA, который может быть развёрнут на любом статичном файловом сервере, приложение с серверным рендерингом требует окружения, где есть возможность запустить сервер Node.js.
31+
32+
- Повышенная нагрузка на стороне сервера. Рендеринг полноценного приложения в Node.js очевидно более требователен к ресурсам процессора, чем простая раздача статичных файлов, поэтому если вы ожидаете большой трафик, будьте готовы к соответствующей нагрузке на сервер и используйте стратегии кэширования.
33+
34+
Прежде чем использовать серверный рендеринг для вашего приложения, задайте себе вопрос, действительно ли он вам нужен. Ответ зависит от того, насколько важно время до контента для вашего приложения. Например, если вы разрабатываете панель мониторинга для внутренних нужд, где дополнительные несколько сотен миллисекунд начальной загрузки не так важны, то серверный рендеринг будет излишеством. Однако, в тех случаях, когда время до контента критично, серверный рендеринг может позволит достичь наилучшей производительности начальной загрузки.
35+
36+
## SSR vs Пререндеринг
37+
38+
Если вы интересуетесь серверным рендерингом только для того, чтобы улучшить SEO на нескольких маркетинговых страницах (например, `/`, `/about`, `/contact`, и т.д.), вам скорее всего будет достаточно __пререндеринга__. Вместо того, чтобы заставлять веб-сервер компилировать HTML на лету, пререндеринг просто сгенерирует статичные HTML-файлы для указанных маршрутов на этапе сборки. Преимуществом пререндеринга будет простота реализации, кроме того этот подход позволит вам оставить фронтенд полностью статичным.
39+
40+
Если вы используете Webpack, то для добавления пререндеринга достаточно установить плагин [prerender-spa-plugin](https://github.com/chrisvfritz/prerender-spa-plugin). Он был тщательно протестирован с приложениями Vue, а его [создатель](https://github.com/chrisvfritz) — член основной команды разработки Vue.
41+
42+
## Об этом руководстве
43+
44+
Это руководство ориентировано на SPA приложения с рендерингом на сервере, используя Node.js в качестве сервера. Использование серверного рендеринга Vue совместно с другими технологиями и настройками бэкэнда являются отдельной темой и не рассматриваются в этом руководстве.
45+
46+
Это руководство будет очень детальным и предполагает, что вы уже знакомы с самим Vue.js, имеете знания и опыт работы с Node.js и Webpack. Если вы предпочитаете более высокоуровневые решения, обеспечивающие работу из коробки — вам следует попробовать [Nuxt.js](http://nuxtjs.org/). Он построен на том же стеке Vue, но позволяет абстрагироваться от написания шаблонного кода, а также предоставляет некоторые дополнительные возможности, такие как генерация статичного сайта. Однако он может не подойти, если вам необходим полный контроль над структурой приложения. В любом случае, вам будет полезно прочитать это руководство, чтобы лучше понимать, как все составляющие работают вместе.
47+
48+
По мере прочтения руководства, будет полезным обращаться к официальному [демо HackerNews](https://github.com/vuejs/vue-hackernews-2.0/), в котором используется большинство техник, изложенных в этом руководстве.
49+
50+
Наконец, обратите внимание, что решения в этом руководстве не являются окончательными — мы решили, что они хорошо работают для нас, но это не означает, что они не могут быть улучшены. Они могут быть пересмотрены в будущем — поэтому не стесняйтесь вносить свой вклад, отправляя пулл-реквесты!

ru/SUMMARY.md

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
- [Использование](basic.md)
2+
- [Написание универсального кода](universal.md)
3+
- [Структура исходного кода](structure.md)
4+
- [Маршрутизация и разделение кода](routing.md)
5+
- [Предзагрузка данных и состояния](data.md)
6+
- [Гидратация клиентской части](hydration.md)
7+
- [Представляем Bundle Renderer](bundle-renderer.md)
8+
- [Конфигурация сборки](build-config.md)
9+
- [Управление CSS](css.md)
10+
- [Управление заголовочными тегами (head)](head.md)
11+
- [Кэширование](caching.md)
12+
- [Стриминг](streaming.md)
13+
- [Справочник API](api.md)
14+
- [createRenderer](api.md#createrendereroptions)
15+
- [createBundleRenderer](api.md#createbundlerendererbundle-options)
16+
- [Класс: Renderer](api.md#class-renderer)
17+
- [Класс: BundleRenderer](api.md#class-bundlerenderer)
18+
- [Опции рендерера](api.md#renderer-options)
19+
- [template](api.md#template)
20+
- [clientManifest](api.md#clientmanifest)
21+
- [inject](api.md#inject)
22+
- [shouldPreload](api.md#shouldpreload)
23+
- [runInNewContext](api.md#runinnewcontext)
24+
- [basedir](api.md#basedir)
25+
- [cache](api.md#cache)
26+
- [directives](api.md#directives)
27+
- [Webpack плагины](api.md#webpack-plugins)

0 commit comments

Comments
 (0)