Skip to content

WIP перевод #3

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 34 commits into from
May 1, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
3e1fe7f
basic.md переведён
Alex-Sokolov Apr 30, 2017
351fe05
basic.md тире и переведены примеры
Alex-Sokolov Apr 30, 2017
fd4d4b2
universal.md переведён
Alex-Sokolov Apr 30, 2017
cdfa2d3
structure.md переведён
Alex-Sokolov Apr 30, 2017
949bb2e
routing.md переведён
Alex-Sokolov Apr 30, 2017
ea2f121
data.md переведён
Alex-Sokolov Apr 30, 2017
89c7236
hydration.md переведён
Alex-Sokolov Apr 30, 2017
20d8815
bundle-renderer.md переведён
Alex-Sokolov Apr 30, 2017
444c685
build-config.md в процессе
Alex-Sokolov Apr 30, 2017
58eac4b
Merge remote-tracking branch 'upstream/master'
Alex-Sokolov Apr 30, 2017
cc8abba
bundle-renderer.md исправлена ссылка
Alex-Sokolov Apr 30, 2017
9c46545
build-config.md переведён
Alex-Sokolov Apr 30, 2017
acacb2b
css.md переведён
Alex-Sokolov Apr 30, 2017
ce48c91
head.md переведён
Alex-Sokolov Apr 30, 2017
7ab8c11
cache.md переведён
Alex-Sokolov Apr 30, 2017
169144d
streaming.md переведён
Alex-Sokolov Apr 30, 2017
7825051
SUMMARY.md допереведён
Alex-Sokolov Apr 30, 2017
924e1f8
api.md начат перевод
Alex-Sokolov Apr 30, 2017
61828fc
build-config.md доработки
Alex-Sokolov May 1, 2017
2ec9e03
bundle-rendered.md доработки
Alex-Sokolov May 1, 2017
37e3712
api.md допереведён
Alex-Sokolov May 1, 2017
018b10d
api.md исправлены опечатки
Alex-Sokolov May 1, 2017
a9a3b79
basic.md исправлены опечатки
Alex-Sokolov May 1, 2017
d63a695
build-config.md исправлены опечатки
Alex-Sokolov May 1, 2017
5885df8
bundle-renderer.md исправлены опечатки
Alex-Sokolov May 1, 2017
4db01fb
caching.md исправлены опечатки
Alex-Sokolov May 1, 2017
eae6ee2
css.md исправлены опечатки
Alex-Sokolov May 1, 2017
38a3681
data.md исправлены опечатки
Alex-Sokolov May 1, 2017
a4cd8bc
head.md исправлены опечатки
Alex-Sokolov May 1, 2017
be1b2d8
hydration.md исправлены опечатки
Alex-Sokolov May 1, 2017
b12e70f
routing.md исправлены опечатки
Alex-Sokolov May 1, 2017
02a1fc0
streaming.md исправлены опечатки
Alex-Sokolov May 1, 2017
89f91f4
structure.md исправлены опечатки
Alex-Sokolov May 1, 2017
b096bb4
universal.md исправлены опечатки
Alex-Sokolov May 1, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 17 additions & 17 deletions ru/SUMMARY.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
- [Basic Usage](basic.md)
- [Writing Universal Code](universal.md)
- [Source Code Structure](structure.md)
- [Routing and Code-Splitting](routing.md)
- [Data Pre-fetching and State](data.md)
- [Client Side Hydration](hydration.md)
- [Introducing Bundle Renderer](bundle-renderer.md)
- [Build Configuration](build-config.md)
- [CSS Management](css.md)
- [Head Management](head.md)
- [Caching](caching.md)
- [Streaming](streaming.md)
- [API Reference](api.md)
- [Использование](basic.md)
- [Написание универсального кода](universal.md)
- [Структура исходного кода](structure.md)
- [Маршрутизация и разделение кода](routing.md)
- [Предзагрузка данных и состояния](data.md)
- [Гидратация клиентской части](hydration.md)
- [Представляем Bundle Renderer](bundle-renderer.md)
- [Конфигурация сборки](build-config.md)
- [Управление CSS](css.md)
- [Управление заголовочными тегами (head)](head.md)
- [Кэширование](caching.md)
- [Стриминг](streaming.md)
- [Справочник API](api.md)
- [createRenderer](api.md#createrendereroptions)
- [createBundleRenderer](api.md#createbundlerendererbundle-options)
- [Class: Renderer](api.md#class-renderer)
- [Class: BundleRenderer](api.md#class-bundlerenderer)
- [Renderer Options](api.md#renderer-options)
- [Класс: Renderer](api.md#class-renderer)
- [Класс: BundleRenderer](api.md#class-bundlerenderer)
- [Опции рендерера](api.md#renderer-options)
- [template](api.md#template)
- [clientManifest](api.md#clientmanifest)
- [inject](api.md#inject)
Expand All @@ -24,4 +24,4 @@
- [basedir](api.md#basedir)
- [cache](api.md#cache)
- [directives](api.md#directives)
- [Webpack Plugins](api.md#webpack-plugins)
- [Webpack плагины](api.md#webpack-plugins)
120 changes: 60 additions & 60 deletions ru/api.md

Large diffs are not rendered by default.

70 changes: 35 additions & 35 deletions ru/basic.md
Original file line number Diff line number Diff line change
@@ -1,42 +1,42 @@
# Basic Usage
# Использование

## Installation
## Установка

``` bash
npm install vue vue-server-renderer --save
```

We will be using NPM throughout the guide, but feel free to use [Yarn](https://yarnpkg.com/en/) instead.
В руководстве мы будем использовать NPM, но вы свободно можете использовать и [Yarn](https://yarnpkg.com/en/).

#### Notes
#### Примечания

- It's recommended to use Node.js version 6+.
- `vue-server-renderer` and `vue` must have matching versions.
- `vue-server-renderer` relies on some Node.js native modules and therefore can only be used in Node.js. We may provide a simpler build that can be run in other JavaScript runtimes in the future.
- Рекомендуется использовать Node.js версии 6+.
- `vue-server-renderer` и `vue` должны иметь одинаковые версии.
- `vue-server-renderer` зависит от некоторых нативных модулей Node.js и поэтому может использоваться только в Node.js. Возможно в будущем мы предоставим более простую сборку, которая сможет быть запущена в других средах исполнения JavaScript.

## Rendering a Vue Instance
## Рендеринг экземпляра Vue

``` js
// Step 1: Create a Vue instance
// Шаг 1: Создаём экземпляр Vue
const Vue = require('vue')
const app = new Vue({
template: `<div>Hello World</div>`
})

// Step 2: Create a renderer
// Шаг 2: Создаём рендерер
const renderer = require('vue-server-renderer').createRenderer()

// Step 3: Render the Vue instance to HTML
// Шаг 3: Рендерим экземпляр Vue в HTML
renderer.renderToString(app, (err, html) => {
if (err) throw err
console.log(html)
// => <div data-server-rendered="true">hello world</div>
})
```

## Integrating with a Server
## Интеграция с сервером

It is pretty straightforward when used inside a Node.js server, for example [Express](https://expressjs.com/):
Это достаточно просто когда мы используем сервер на Node.js, например [Express](https://expressjs.com/):

``` bash
npm install express --save
Expand All @@ -52,18 +52,18 @@ server.get('*', (req, res) => {
data: {
url: req.url
},
template: `<div>The visited URL is: {{ url }}</div>`
template: `<div>Вы открыли URL: {{ url }}</div>`
})

renderer.renderToString(app, (err, html) => {
if (err) {
res.status(500).end('Internal Server Error')
res.status(500).end('Внутренняя ошибка сервера')
return
}
res.end(`
<!DOCTYPE html>
<html lang="en">
<head><title>Hello</title></head>
<head><title>Привет</title></head>
<body>${html}</body>
</html>
`)
Expand All @@ -73,39 +73,39 @@ server.get('*', (req, res) => {
server.listen(8080)
```

## Using a Page Template
## Использование шаблона страниц

When you render a Vue app, the renderer only generates the markup of the app. In the example we had to wrap the output with an extra HTML page shell.
Когда вы рендерите приложение Vue, рендерер генерирует только разметку приложения. В примере выше нам потребовалось обернуть вывод дополнительным кодом для создания обычной HTML-страницы.

To simplify this, you can directly provide a page template when creating the renderer. Most of the time we will put the page template in its own file, e.g. `index.template.html`:
Вы можете упростить это, предоставив шаблон страницы при создании рендерера. Чаще всего нам требуется расположить шаблон в отдельном файле, например `index.template.html`:

``` html
<!DOCTYPE html>
<html lang="en">
<head><title>Hello</title></head>
<head><title>Привет</title></head>
<body>
<!--vue-ssr-outlet-->
</body>
</html>
```

Notice the `<!--vue-ssr-outlet-->` comment -- this is where your app's markup will be injected.
Обратите внимание на комментарий `<!--vue-ssr-outlet-->` — сюда будет подставлена разметка вашего приложения.

We can then read and pass the file to the Vue renderer:
Теперь мы можем прочитать этот файл и передать его в рендерер Vue:

``` js
const renderer = createRenderer({
template: require('fs').readFileSync('./index.template.html', 'utf-8')
})

renderer.renderToString(app, (err, html) => {
console.log(html) // will be the full page with app content injected.
console.log(html) // будет выведен код всей страницы, с подставленным кодом приложения.
})
```

### Template Interpolation
### Интерполяции в шаблоне

The template also supports simple interpolation. Given the following template:
Шаблон поддерживает простые интерполяции. Например:

``` html
<html>
Expand All @@ -119,29 +119,29 @@ The template also supports simple interpolation. Given the following template:
</html>
```

We can provide interpolation data by passing a "render context object" as the second argument to `renderToString`:
Мы можем предоставить необходимые данные для интерполяции, передав объект контекста для для рендера вторым аргументов в `renderToString`:

``` js
const context = {
title: 'hello',
title: 'привет',
meta: `
<meta ...>
<meta ...>
`
}

renderer.renderToString(app, context, (err, html) => {
// page title will be "hello"
// with meta tags injected
// заголовок страницы будет "привет"
// meta-теги также будут подставлены в код страницы
})
```

The `context` object can also be shared with the Vue app instance, allowing components to dynamically register data for template interpolation.
Объект `context` может также использоваться совместно с экземпляром Vue приложения, что разрешает компонентам динамически регистрировать данные для интерполяции в шаблоне.

In addition, the template supports some advanced features such as:
Кроме того, шаблон поддерживает некоторые продвинутые функции:

- Auto injection of critical CSS when using `*.vue` components;
- Auto injection of asset links and resource hints when using `clientManifest`;
- Auto injection and XSS prevention when embedding Vuex state for client-side hydration.
- Автоматическую подстановку критически важного CSS при использовании `*.vue` компонентов;
- Автоматическую подстановку ссылок и подсказок для ресурсов (preload / prefetch) при использовании `clientManifest`;
- Автоматическую подстановку и предотвращение XSS при встраивании Vuex-состояния для гидратации на стороне клиента.

We will discuss these when we introduce the associated concepts later in the guide.
Мы обсудим это дальше, когда будем разбирать все связанные концепции.
Loading