File: route-object.md

package info (click to toggle)
vue-router.js 3.4.9%2Bds-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 3,212 kB
  • sloc: javascript: 7,982; sh: 22; makefile: 5
file content (89 lines) | stat: -rw-r--r-- 3,582 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# Объект Route

**Объект Route** содержит состояние текущего активного пути, а именно: структурированную информацию о текущем URL и **записи путей**, совпавшие с ним.

Объект пути иммутабелен: при каждом навигационном переходе он пересоздаётся заново.

Объекты пути могут быть обнаружены в нескольких местах:

- В компонентах, в виде `this.$route`

- В коллбэках при отслеживании `$route`

- Как возвращаемое значение при вызове `router.match(location)`

- В качестве первых двух параметров сторожевых хуков:

  ``` js
  router.beforeEach((to, from, next) => {
    // как `to` так и `from` являются объектами пути
  })
  ```

- В качестве первых двух параметров функции `scrollBehavior` :

  ``` js
  const router = new VueRouter({
    scrollBehavior (to, from, savedPosition) {
      // как `to` так и `from` являются объектами пути
    }
  })
  ```

### Свойства объекта Route

- **$route.path**

  - тип: `string`

    Строковое значение path текущего пути, всегда в абсолютном формате, напр. `"/foo/bar"`.

- **$route.params**

  - тип: `Object`

    Объект, содержащий пары ключ/значение для динамических сегментов (включая *-сегменты). Будет пустым, если параметров у пути нет.

- **$route.query**

  - тип: `Object`

    Объект, содержащий пары ключ/значение для строки запроса (query string). Например, для пути `/foo?user=1` получится `$route.query.user == 1`. При отсутствии строки запроса, будет пустым объектом.

- **$route.hash**

  - тип: `string`

    Хэш текущего пути (с символом `#`), если присутствует. В противном случае — пустая строка.

- **$route.fullPath**

  - тип: `string`

    Полная запись URL, включая строку запроса и хэш.

- **$route.matched**

  - тип: `Array<RouteRecord>`

  Массив, содержащий **записи путей** для всех вложенных сегментов текущего пути. Записи путей — это копии объектов конфигурации из массива `routes` (и вложенных массивов `children`):

  ``` js
  const router = new VueRouter({
    routes: [
      // объект ниже — это запись пути
      { path: '/foo', component: Foo,
        children: [
          // это — тоже запись пути
          { path: 'bar', component: Bar }
        ]
      }
    ]
  })
  ```

  Для URL, равного `/foo/bar`, `$route.matched` будет массивом, содержащим копии обоих объектов, в порядке сортировки от родителя к потомку.

- **$route.name**

  Имя текущего пути, если указано. (См. [Именованные пути](../essentials/named-routes.md))