You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The same rules apply for the `to` property of the `router-link` component.
48
48
49
49
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.
51
51
52
52
**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).
Copy file name to clipboardexpand all lines: docs/ru/api/README.md
+76-34
Original file line number
Diff line number
Diff line change
@@ -13,22 +13,52 @@ sidebar: auto
13
13
`<router-link>` предпочтительнее `<a href="...">` по следующим причинам:
14
14
15
15
- Он работает одинаково вне зависимости от режима работы (HTML5 history или хэш), поэтому если вы решите переключить режим, или маршрутизатор для совместимости переключится обратно в режим хэша в IE9, ничего не потребуется изменять.
16
-
17
16
- В режиме HTML5 history, `router-link` будет перехватывать событие click, чтобы браузер не пытался перезагрузить страницу.
18
-
19
17
- При использовании опции `base` в режиме работы HTML5 history, вам не потребуется добавлять её в URL входного параметра `to`.
20
18
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_ или подобных.
22
22
23
-
Иногда может потребоваться применять активный класс к внешнему элементу, а не к тегу `<a>`, в этом случае можно отобразить внешний элемент с помощью `<router-link>` и обернуть содержимое тегом `<a>` внутри:
23
+
**При использовании API `v-slot` необходимо передавать один дочерний элемент в `router-link`**. Если этого не сделать, `router-link` обернёт все дочерние элементы в `span`.
В этом случае `<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` для создания ссылки:
Строка пути текущего маршрута, всегда в абсолютном формате, например `"/foo/bar"`.
433
473
434
-
- **$route.params**
474
+
- **\$route.params**
435
475
436
476
- тип: `Object`
437
477
438
478
Объект, который содержит пары ключ/значение динамических сегментов маршрута (включая *-сегменты). Если параметров нет, то значением будет пустой объект.
439
479
440
-
- **$route.query**
480
+
- **\$route.query**
441
481
442
482
- тип: `Object`
443
483
444
484
Объект, который содержит пары ключ/значение строки запроса (query string). Например, для пути `/foo?user=1` получим `$route.query.user==1`. Если строки запроса нет, то значением будет пустой объект.
445
485
446
-
- **$route.hash**
486
+
- **\$route.hash**
447
487
448
488
- тип: `string`
449
489
450
490
Хэш текущего маршрута (вместе с символом `#`) при его наличии. Если хэша нет, то значением будет пустая строка.
451
491
452
-
- **$route.fullPath**
492
+
- **\$route.fullPath**
453
493
454
494
- тип: `string`
455
495
456
496
Полная запись URL-адреса, включая строку запроса и хэш.
457
497
458
-
- **$route.matched**
498
+
- **\$route.matched**
459
499
460
500
- тип: `Array<RouteRecord>`
461
501
@@ -465,7 +505,9 @@ router.onError(callback)
465
505
constrouter=newVueRouter({
466
506
routes: [
467
507
// объект ниже — это запись маршрута
468
-
{ path:'/foo', component: Foo,
508
+
{
509
+
path:'/foo',
510
+
component: Foo,
469
511
children: [
470
512
// это — тоже запись маршрута
471
513
{ path:'bar', component: Bar }
@@ -477,11 +519,11 @@ router.onError(callback)
477
519
478
520
Для URL `/foo/bar`, значение `$route.matched` будет массивом, содержащим копии объектов (клоны), в порядке сортировки от родителя к потомку.
479
521
480
-
- **$route.name**
522
+
- **\$route.name**
481
523
482
524
Имя текущего маршрута, если было указано. (Подробнее в разделе [именованные маршруты](../guide/essentials/named-routes.md))
483
525
484
-
- **$route.redirectedFrom**
526
+
- **\$route.redirectedFrom**
485
527
486
528
Имя маршрута с которого произошло перенаправление, если было указано. (Подробнее в разделе [перенаправления и псевдонимы](../guide/essentials/redirect-and-alias.md))
487
529
@@ -491,11 +533,11 @@ router.onError(callback)
491
533
492
534
Эти свойства внедряются в каждый дочерний компонент, передавая экземпляр маршрутизатора в корневой экземпляр в качестве опции `router`.
493
535
494
-
- **this.$router**
536
+
- **this.\$router**
495
537
496
538
Экземпляр маршрутизатора.
497
539
498
-
- **this.$route**
540
+
- **this.\$route**
499
541
500
542
Текущий активный [маршрут](#объект-route). Это свойство только для чтения и все его свойства иммутабельны, но можно отслеживать их изменения.
С версии 2.2.0+ можно опционально указать коллбэки `onComplete` и `onAbort` в `router.push` или `router.replace` в качестве 2-го и 3-го аргументов. Эти коллбэки будут вызываться когда навигация либо успешно завершена (после того как все асинхронные хуки будут завершены), или прервана (переходом на этот же маршрут, или на другой маршрут прежде чем текущая навигация будет завершена), соответственно.
50
50
51
+
С версии 3.1.0+ можно опустить 2-й и 3-й аргументы, в таком случае `router.push`/`router.replace` будут возвращать Promise, если они поддерживаются окружением.
52
+
51
53
**Примечание:** если путь назначения совпадает с текущим маршрутом и меняются только параметры (например, переход из одного профиля в другой `/users/1` -> `/users/2`), вам потребуется использовать [`beforeRouteUpdate`](./dynamic-matching.md#отсnеживание-изменений-параметров) для отслеживания изменений (например, загрузки информации о пользователе).
0 commit comments