Skip to content

Commit e9ab7f3

Browse files
Alex-Sokolovposva
authored andcommitted
docs(ru): Translation update (#2879)
* docs: [RU] Translation update * README.md обновление * navigation.md fix * consistent code blocks * dynamic-matching.md add new section * dynamic-matching.md fix * navigation-guards.md fix title * data-fetching.md fix * README.md fix * (docs) [RU] Translation update * fix typo
1 parent c5b9318 commit e9ab7f3

File tree

5 files changed

+82
-38
lines changed

5 files changed

+82
-38
lines changed

docs/guide/essentials/navigation.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ router.push({ path: '/user', params: { userId } }) // -> /user
4747
The same rules apply for the `to` property of the `router-link` component.
4848

4949
In 2.2.0+, optionally provide `onComplete` and `onAbort` callbacks to `router.push` or `router.replace` as the 2nd and 3rd arguments. These callbacks will be called when the navigation either successfully completed (after all async hooks are resolved), or aborted (navigated to the same route, or to a different route before current navigation has finished), respectively.
50-
In 3.1.0+, you can ommit the 2nd and 3rd parameter and `router.push`/`router.replace` will return a promise instead if Promises are supported.
50+
In 3.1.0+, you can omit the 2nd and 3rd parameter and `router.push`/`router.replace` will return a promise instead if Promises are supported.
5151

5252
**Note:** If the destination is the same as the current route and only params are changing (e.g. going from one profile to another `/users/1` -> `/users/2`), you will have to use [`beforeRouteUpdate`](./dynamic-matching.md#reacting-to-params-changes) to react to changes (e.g. fetching the user information).
5353

docs/ru/api/README.md

+76-34
Original file line numberDiff line numberDiff line change
@@ -13,22 +13,52 @@ sidebar: auto
1313
`<router-link>` предпочтительнее `<a href="...">` по следующим причинам:
1414

1515
- Он работает одинаково вне зависимости от режима работы (HTML5 history или хэш), поэтому если вы решите переключить режим, или маршрутизатор для совместимости переключится обратно в режим хэша в IE9, ничего не потребуется изменять.
16-
1716
- В режиме HTML5 history, `router-link` будет перехватывать событие click, чтобы браузер не пытался перезагрузить страницу.
18-
1917
- При использовании опции `base` в режиме работы HTML5 history, вам не потребуется добавлять её в URL входного параметра `to`.
2018

21-
### Применение активного класса к внешнему элементу
19+
### `v-slot` API (3.1.0+)
20+
21+
`router-link` предоставляет возможность более низкоуровневой настройки с помощью [слота с ограниченной областью видимости](https://ru.vuejs.org/v2/guide/components-slots.html#%D0%A1%D0%BB%D0%BE%D1%82%D1%8B-%D1%81-%D0%BE%D0%B3%D1%80%D0%B0%D0%BD%D0%B8%D1%87%D0%B5%D0%BD%D0%BD%D0%BE%D0%B9-%D0%BE%D0%B1%D0%BB%D0%B0%D1%81%D1%82%D1%8C%D1%8E-%D0%B2%D0%B8%D0%B4%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D0%B8). Это более продвинутое API ориентировано в первую очередь на создателей библиотек, но может пригодиться и разработчикам, к примеру для создании пользовательских компонентов таких как _NavLink_ или подобных.
2222

23-
Иногда может потребоваться применять активный класс к внешнему элементу, а не к тегу `<a>`, в этом случае можно отобразить внешний элемент с помощью `<router-link>` и обернуть содержимое тегом `<a>` внутри:
23+
**При использовании API `v-slot` необходимо передавать один дочерний элемент в `router-link`**. Если этого не сделать, `router-link` обернёт все дочерние элементы в `span`.
2424

2525
```html
26-
<router-link tag="li" to="/foo">
27-
<a>/foo</a>
26+
<router-link
27+
to="/about"
28+
v-slot="{ href, route, navigate, isActive, isExactActive }"
29+
>
30+
<NavLink :active="isActive" :href="href" @click="navigate">
31+
{{ route.fullPath }}
32+
</NavLink>
2833
</router-link>
2934
```
3035

31-
В этом случае `<a>` будет фактической ссылкой (и получит правильный `href`), но активный класс будет применён к внешнему `<li>`.
36+
- `href`: разрешённый URL. Это будет атрибутом `href` для элемента `a`
37+
- `route`: разрешённый нормализованный маршрут
38+
- `navigate`: функция для запуска навигации. **Она автоматически предотвращает события, когда это необходимо**, аналогичным способом, как это делает `router-link`
39+
- `isActive`: `true` если [активный класс](#active-class) должен применяться. Позволяет применить произвольный класс
40+
- `isExactActive`: `true` если [активный класс при точном совпадении пути](#exact-active-class) должен применяться. Позволяет применить произвольный класс
41+
42+
### Пример: Добавление активного класса к внешнему элементу
43+
44+
Иногда может потребоваться применять активный класс к внешнему элементу, а не к тегу `<a>`, в этом случае можно обернуть этот элемент в `<router-link>` и использовать свойства `v-slot` для создания ссылки:
45+
46+
```html
47+
<router-link
48+
to="/foo"
49+
v-slot="{ href, route, navigate, isActive, isExactActive }"
50+
>
51+
<li
52+
:class="[isActive && 'router-link-active', isExactActive && 'router-link-exact-active']"
53+
>
54+
<a :href="href" @click="navigate">{{ route.fullPath }}</a>
55+
</li>
56+
</router-link>
57+
```
58+
59+
:::tip ПРИМЕЧАНИЕ
60+
При добавлении `target="_blank"` на элемент `a`, необходимо опустить обработчик `@click="navigate"`.
61+
:::
3262

3363
## Входные параметры `<router-link>`
3464

@@ -58,7 +88,9 @@ sidebar: auto
5888
<router-link :to="{ name: 'user', params: { userId: 123 }}">User</router-link>
5989

6090
<!-- с использованием query-строки, получим `/register?plan=private` -->
61-
<router-link :to="{ path: 'register', query: { plan: 'private' }}">Register</router-link>
91+
<router-link :to="{ path: 'register', query: { plan: 'private' }}">
92+
Регистрация
93+
</router-link>
6294
```
6395

6496
### replace
@@ -114,7 +146,7 @@ sidebar: auto
114146

115147
```html
116148
<!-- эта ссылка будет активной только для адреса `/` -->
117-
<router-link to="/" exact>
149+
<router-link to="/" exact></router-link>
118150
```
119151

120152
Ознакомьтесь с другими примерами активных классов ссылок [вживую](https://jsfiddle.net/8xrk1n9f/).
@@ -166,22 +198,22 @@ sidebar: auto
166198

167199
Декларация типа для `RouteConfig`:
168200

169-
```js
170-
declare type RouteConfig = {
171-
path: string;
172-
component?: Component;
173-
name?: string; // для именованных маршрутов
174-
components?: { [name: string]: Component }; // для именованных представлений
175-
redirect?: string | Location | Function;
176-
props?: boolean | Object | Function;
177-
alias?: string | Array<string>;
178-
children?: Array<RouteConfig>; // для вложенных маршрутов
179-
beforeEnter?: (to: Route, from: Route, next: Function) => void;
180-
meta?: any;
201+
```ts
202+
interface RouteConfig = {
203+
path: string,
204+
component?: Component,
205+
name?: string, // для именованных маршрутов
206+
components?: { [name: string]: Component }, // для именованных представлений
207+
redirect?: string | Location | Function,
208+
props?: boolean | Object | Function,
209+
alias?: string | Array<string>,
210+
children?: Array<RouteConfig>, // для вложенных маршрутов
211+
beforeEnter?: (to: Route, from: Route, next: Function) => void,
212+
meta?: any,
181213

182214
// Добавлено в версии 2.6.0+
183-
caseSensitive?: boolean; // учитывать регистр при сравнении? (по умолчанию: false)
184-
pathToRegexpOptions?: Object; // настройки path-to-regexp для компиляции regex
215+
caseSensitive?: boolean, // учитывать регистр при сравнении? (по умолчанию: false)
216+
pathToRegexpOptions?: Object // настройки path-to-regexp для компиляции regex
185217
}
186218
```
187219

@@ -285,7 +317,9 @@ sidebar: auto
285317
## Методы экземпляра Router
286318

287319
### router.beforeEach
320+
288321
### router.beforeResolve
322+
289323
### router.afterEach
290324

291325
Сигнатуры:
@@ -307,16 +341,22 @@ router.afterEach((to, from) => {})
307341
Все три метода возвращают функцию для удаления зарегистрированного хука.
308342

309343
### router.push
344+
310345
### router.replace
346+
311347
### router.go
348+
312349
### router.back
350+
313351
### router.forward
314352

315353
Сигнатуры:
316354

317355
```js
318356
router.push(location, onComplete?, onAbort?)
357+
router.push(location).then(onComplete).catch(onAbort)
319358
router.replace(location, onComplete?, onAbort?)
359+
router.replace(location).then(onComplete).catch(onAbort)
320360
router.go(n)
321361
router.back()
322362
router.forward()
@@ -425,37 +465,37 @@ router.onError(callback)
425465
426466
### Свойства объекта Route
427467
428-
- **$route.path**
468+
- **\$route.path**
429469
430470
- тип: `string`
431471
432472
Строка пути текущего маршрута, всегда в абсолютном формате, например `"/foo/bar"`.
433473
434-
- **$route.params**
474+
- **\$route.params**
435475
436476
- тип: `Object`
437477
438478
Объект, который содержит пары ключ/значение динамических сегментов маршрута (включая *-сегменты). Если параметров нет, то значением будет пустой объект.
439479
440-
- **$route.query**
480+
- **\$route.query**
441481
442482
- тип: `Object`
443483
444484
Объект, который содержит пары ключ/значение строки запроса (query string). Например, для пути `/foo?user=1` получим `$route.query.user == 1`. Если строки запроса нет, то значением будет пустой объект.
445485
446-
- **$route.hash**
486+
- **\$route.hash**
447487
448488
- тип: `string`
449489
450490
Хэш текущего маршрута (вместе с символом `#`) при его наличии. Если хэша нет, то значением будет пустая строка.
451491
452-
- **$route.fullPath**
492+
- **\$route.fullPath**
453493
454494
- тип: `string`
455495
456496
Полная запись URL-адреса, включая строку запроса и хэш.
457497
458-
- **$route.matched**
498+
- **\$route.matched**
459499
460500
- тип: `Array<RouteRecord>`
461501
@@ -465,7 +505,9 @@ router.onError(callback)
465505
const router = new VueRouter({
466506
routes: [
467507
// объект ниже — это запись маршрута
468-
{ path: '/foo', component: Foo,
508+
{
509+
path: '/foo',
510+
component: Foo,
469511
children: [
470512
// это — тоже запись маршрута
471513
{ path: 'bar', component: Bar }
@@ -477,11 +519,11 @@ router.onError(callback)
477519
478520
Для URL `/foo/bar`, значение `$route.matched` будет массивом, содержащим копии объектов (клоны), в порядке сортировки от родителя к потомку.
479521
480-
- **$route.name**
522+
- **\$route.name**
481523
482524
Имя текущего маршрута, если было указано. (Подробнее в разделе [именованные маршруты](../guide/essentials/named-routes.md))
483525
484-
- **$route.redirectedFrom**
526+
- **\$route.redirectedFrom**
485527
486528
Имя маршрута с которого произошло перенаправление, если было указано. (Подробнее в разделе [перенаправления и псевдонимы](../guide/essentials/redirect-and-alias.md))
487529
@@ -491,11 +533,11 @@ router.onError(callback)
491533
492534
Эти свойства внедряются в каждый дочерний компонент, передавая экземпляр маршрутизатора в корневой экземпляр в качестве опции `router`.
493535
494-
- **this.$router**
536+
- **this.\$router**
495537
496538
Экземпляр маршрутизатора.
497539
498-
- **this.$route**
540+
- **this.\$route**
499541
500542
Текущий активный [маршрут](#объект-route). Это свойство только для чтения и все его свойства иммутабельны, но можно отслеживать их изменения.
501543

docs/ru/guide/advanced/data-fetching.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
```html
1818
<template>
1919
<div class="post">
20-
<div class="loading" v-if="loading">
20+
<div v-if="loading" class="loading">
2121
Загрузка...
2222
</div>
2323

docs/ru/guide/essentials/named-views.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ const router = new VueRouter({
4747
- `UserSettings` компонент представления
4848
- `UserEmailsSubscriptions`, `UserProfile`, `UserProfilePreview` вложенные компоненты представлений
4949

50-
**Примечание**: _Давайте опустим как должен выглядеть HTML/CSS для реализации подобного шаблона и сосредоточимся на используемых компонентах_
50+
**Примечание**: _Давайте опустим как должен выглядеть HTML/CSS для реализации подобного шаблона и сосредоточимся на используемых компонентах._
5151

5252
Секция `<template>` компонента `UserSettings` будет выглядеть примерно так:
5353

@@ -61,7 +61,7 @@ const router = new VueRouter({
6161
</div>
6262
```
6363

64-
_Вложенные компоненты представлений в примере опущены, но вы можете посмотреть их полные исходные коды [здесь](https://jsfiddle.net/posva/22wgksa3/)_
64+
_Вложенные компоненты представлений в примере опущены, но вы можете посмотреть их полные исходные коды [здесь](https://jsfiddle.net/posva/22wgksa3/)._
6565

6666
Затем вы можете скомпоновать шаблона выше в конфигурации маршрута:
6767

docs/ru/guide/essentials/navigation.md

+2
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,8 @@ router.push({ path: '/user', params: { userId } }) // -> /user
4848

4949
С версии 2.2.0+ можно опционально указать коллбэки `onComplete` и `onAbort` в `router.push` или `router.replace` в качестве 2-го и 3-го аргументов. Эти коллбэки будут вызываться когда навигация либо успешно завершена (после того как все асинхронные хуки будут завершены), или прервана (переходом на этот же маршрут, или на другой маршрут прежде чем текущая навигация будет завершена), соответственно.
5050

51+
С версии 3.1.0+ можно опустить 2-й и 3-й аргументы, в таком случае `router.push`/`router.replace` будут возвращать Promise, если они поддерживаются окружением.
52+
5153
**Примечание:** если путь назначения совпадает с текущим маршрутом и меняются только параметры (например, переход из одного профиля в другой `/users/1` -> `/users/2`), вам потребуется использовать [`beforeRouteUpdate`](./dynamic-matching.md#отсnеживание-изменений-параметров) для отслеживания изменений (например, загрузки информации о пользователе).
5254

5355
## `router.replace(location, onComplete?, onAbort?)`

0 commit comments

Comments
 (0)