Skip to content
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

docs: [RU] Translation update #3357

Merged
merged 40 commits into from
Oct 25, 2020
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
fa9c9f0
docs: [RU] Translation update
Alex-Sokolov Aug 14, 2018
24c1eda
Merge remote-tracking branch 'upstream/dev' into ru-translation
Alex-Sokolov Nov 12, 2018
2a85f36
README.md обновление
Alex-Sokolov Nov 12, 2018
1223d3a
Merge remote-tracking branch 'upstream/dev' into ru-translation
Alex-Sokolov Nov 28, 2018
6973332
Merge remote-tracking branch 'upstream/dev' into ru-translation
Alex-Sokolov Dec 7, 2018
ee6c9cb
navigation.md fix
Alex-Sokolov Dec 7, 2018
0b84042
consistent code blocks
Alex-Sokolov Dec 7, 2018
5cade4f
dynamic-matching.md add new section
Alex-Sokolov Dec 7, 2018
ca5e39f
Merge remote-tracking branch 'upstream/dev' into ru-translation
Alex-Sokolov Jan 9, 2019
2d6ade3
dynamic-matching.md fix
Alex-Sokolov Jan 9, 2019
e55f29b
Merge remote-tracking branch 'upstream/dev' into ru-translation
Alex-Sokolov Jan 27, 2019
7c18acb
navigation-guards.md fix title
Alex-Sokolov Jan 27, 2019
351b216
Merge remote-tracking branch 'upstream/dev' into ru-translation
Alex-Sokolov Feb 9, 2019
40c4871
Merge remote-tracking branch 'upstream/dev' into ru-translation
Alex-Sokolov May 6, 2019
12c0033
data-fetching.md fix
Alex-Sokolov May 6, 2019
5f10d9d
Merge remote-tracking branch 'upstream/dev' into ru-translation
Alex-Sokolov Jul 4, 2019
5f9b925
README.md fix
Alex-Sokolov Jul 26, 2019
2476122
Merge remote-tracking branch 'upstream/dev' into ru-translation
Alex-Sokolov Aug 8, 2019
3421e00
(docs) [RU] Translation update
Alex-Sokolov Aug 8, 2019
7b6b02a
fix typo
Alex-Sokolov Aug 8, 2019
5b27550
sync with upstream
Alex-Sokolov Nov 27, 2019
ac332d0
navigation-guards.md update
Alex-Sokolov Nov 27, 2019
808e8b6
redirect-and-alias.md update
Alex-Sokolov Nov 27, 2019
805dcd5
change '$route' to $route
Alex-Sokolov Nov 27, 2019
44e2033
date-fetching.md formatting
Alex-Sokolov Nov 27, 2019
97a6eb2
histort-mode.md update
Alex-Sokolov Nov 27, 2019
693d2a6
navigation-guards.md update
Alex-Sokolov Nov 27, 2019
70565d7
navigation-guards.md update
Alex-Sokolov Nov 27, 2019
9606295
Merge remote-tracking branch 'upstream/dev' into ru-translation
Alex-Sokolov Mar 2, 2020
67c252d
navigation-guards.md fix example
Alex-Sokolov Mar 2, 2020
6e698c0
Merge remote-tracking branch 'upstream/dev' into ru-translation
Alex-Sokolov Apr 12, 2020
5cd52ed
api.md added aria-current-value
Alex-Sokolov Apr 12, 2020
c55ba65
Merge remote-tracking branch 'upstream/dev' into ru-translation
Alex-Sokolov May 11, 2020
d19acf8
Merge remote-tracking branch 'upstream/dev' into ru-translation
Alex-Sokolov Jun 13, 2020
c4837a7
installation.md update
Alex-Sokolov Jun 13, 2020
ec1538d
history-mode.md update
Alex-Sokolov Jun 13, 2020
e422212
Merge remote-tracking branch 'upstream/dev' into ru-translation
Alex-Sokolov Aug 8, 2020
3e19bab
docs: (ru) navigation-failures.md added
Alex-Sokolov Aug 8, 2020
8d2dda5
docs(ru): Merge remote-tracking branch 'upstream/dev' into ru-transla…
Alex-Sokolov Oct 24, 2020
111f832
docs(ru): navigation-failures.md update
Alex-Sokolov Oct 24, 2020
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
Prev Previous commit
Next Next commit
docs: (ru) navigation-failures.md added
  • Loading branch information
Alex-Sokolov committed Aug 8, 2020
commit 3e19bab6598266e2b75b6a344683e36cadb39394
3 changes: 2 additions & 1 deletion docs/.vuepress/config.js
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,8 @@ module.exports = ctx => ({
'/ru/guide/advanced/transitions.md',
'/ru/guide/advanced/data-fetching.md',
'/ru/guide/advanced/scroll-behavior.md',
'/ru/guide/advanced/lazy-loading.md'
'/ru/guide/advanced/lazy-loading.md',
'/ru/guide/advanced/navigation-failures.md'
]
}
]
Expand Down
64 changes: 64 additions & 0 deletions docs/ru/guide/advanced/navigation-failures.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Сбои при навигации

> Добавлено в версии 3.4.0

При использовании `router-link` Vue Router вызывает `router.push` для запуска навигации. В большинстве случаев ожидаемое поведение ссылок заключается в переходе на новую страницу, но есть несколько ситуаций при которых пользователь остаётся на той же странице:

- Пользователь уже находится на странице, на которую пытается перейти
- [Навигационный хук](./navigation-guards.md) прерывает навигацию вызовом `next(false)`
- [Навигационный хук](./navigation-guards.md) выбрасывает ошибку или вызывает `next(new Error())`

При использовании компонента `router-link` **ни один из этих случаев не будет логироваться как ошибка**. Однако при использовании `router.push` или `router.replace` можно столкнуться с сообщением _"Uncaught (in promise) Error"_ после которого в консоли последует более конкретное сообщение. Давайте разберемся как отличать _сбои навигации_.

::: tip История вопроса
В версии 3.2.0, _навигационные сбои_ доступны через два необязательных коллбэка `router.push`: `onComplete` и `onAbort`. Начиная с версии 3.1.0, `router.push` и `router.replace` возвращают _Promise_ если не указаны коллбэки `onComplete`/`onAbort`. Этот _Promise_ разрешается вместо вызова `onComplete` и отклоняется вместо вызова `onAbort`.
:::

## Обнаружение сбоев навигации

_Сбой навигации_ будет экземпляром `Error` с парой дополнительных свойств. Проверить произошла ли ошибка в маршрутизаторе можно с помощью функции `isNavigationFailure`:

```js
import { NavigationFailureType, isNavigationFailure } from 'vue-router'

// попытка перехода к странице администрирования
router
.push('/admin')
.catch(failure => {
if (isNavigationFailure(failure, NavigationFailureType.redirected)) {
// отображение уведомления пользователю
showToast('Необходимо авторизоваться для доступа к панели администрирования')
}
})
```

::: tip СОВЕТ
Если опустить второй параметр в `isNavigationFailure(failure)`, то будет проверяться только, является ли ошибка _сбоем навигации_.
:::

## Тип `NavigationFailureType`

Тип `NavigationFailureType` поможет разработчикам определять тип _навигационного сбоя_. Существует 4 различных типа:

- `redirected`: внутри навигационного хука был вызван `next(newLocation)` для перенаправления в другое место.
- `aborted`: внутри навигационного хука был вызван `next(false)` для отмены навигации.
- `cancelled`: произошла полностью новая навигация до того, как текущая могла закончиться. Например, во время ожидания внутри навигационного хука был вызван `router.push`.
- `duplicated`: навигация была предотвращена, потому что уже находимся в месте назначения.

## Свойства _ошибок навигации_

Все сбои навигации предоставляют доступ к свойствам `to` и `from`, чтобы отобразить текущее местоположение, а также местоположение места назначения для навигации, в которой произошёл сбой:

```js
// попытка получения доступа к странице администрирования
router
.push('/admin')
.catch(failure => {
if (isNavigationFailure(failure, NavigationFailureType.redirected)) {
console.log(failure.to.path) // '/admin'
console.log(failure.from.path) // '/'
}
})
```

Во всех случаях значения `to` и `from` будут объектами нормализованных маршрутов.