From 7611e20afe58b1bfdb0ad5f7528b053b68b7020c Mon Sep 17 00:00:00 2001 From: Grigoriy Beziuk Date: Mon, 24 Apr 2017 22:34:27 +0800 Subject: [PATCH 01/38] russian translation update v2.5.+ --- docs/ru/api/options.md | 10 ++++++++++ docs/ru/api/router-instance.md | 1 + docs/ru/api/router-link.md | 10 ++++++++++ 3 files changed, 21 insertions(+) diff --git a/docs/ru/api/options.md b/docs/ru/api/options.md index 6d60579f6..0ee982bcf 100644 --- a/docs/ru/api/options.md +++ b/docs/ru/api/options.md @@ -53,6 +53,16 @@ Глобальная конфигурация CSS-класса по умолчанию для активных ссылок ``. См. также [router-link](router-link.md). +### linkExactActiveClass + +> Добавлено в версии 2.5.0+ + +- Тип: `string` + +- По умолчанию: `"router-link-exact-active"` + + Глобально настраивает для `` активный класс по умолчанию для точных совпадений маршрута. См. также [router-link](router-link.md). + ### scrollBehavior - тип: `Function` diff --git a/docs/ru/api/router-instance.md b/docs/ru/api/router-instance.md index d84282cb1..c4e44d950 100644 --- a/docs/ru/api/router-instance.md +++ b/docs/ru/api/router-instance.md @@ -28,6 +28,7 @@ См. [сторожевые хуки](../advanced/navigation-guards.md). + С версии 2.5.0+ все три методы возвращают функцию, которая удаляет зарегистрированный хук. - **router.push(location, onComplete?, onAbort?)** - **router.replace(location, onComplete?, onAbort?)** diff --git a/docs/ru/api/router-link.md b/docs/ru/api/router-link.md index 3f66ff1f4..b8dca03fc 100644 --- a/docs/ru/api/router-link.md +++ b/docs/ru/api/router-link.md @@ -116,6 +116,16 @@ Указывает событие(я), способные вызвать переход по ссылке. +- **exact-active-class** + + > Добавлено в версии 2.5.0+ + + - Тип: `string` + + - По умолчанию: `"router-link-exact-active"` + + Укажите активный CSS-класс, применяемый когда ссылка активна с точным соответствием маршрута. Обратите внимание, что значение по умолчанию также может быть настроено глобально с помощью опции `linkExactActiveClass` в конструкторе маршрутизатора. + ### Применение класса активности ко внешнему элементу Иногда хочется применить класс активности не к самому тегу ``, а к другому элементу. Для этих целей можно использовать `` для наружного элемента, а ссылку разместить внутри, вручную: From d6fc3ac502510211f180c8adaf12cf7b5824d7dc Mon Sep 17 00:00:00 2001 From: Alex-Sokolov Date: Mon, 24 Apr 2017 22:29:32 +0300 Subject: [PATCH 02/38] =?UTF-8?q?router-instance.md=20=D0=B8=D1=81=D0=BF?= =?UTF-8?q?=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=BE=D0=BF=D0=B5?= =?UTF-8?q?=D1=87=D0=B0=D1=82=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ru/api/router-instance.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/api/router-instance.md b/docs/ru/api/router-instance.md index c4e44d950..a0d0e0960 100644 --- a/docs/ru/api/router-instance.md +++ b/docs/ru/api/router-instance.md @@ -28,7 +28,7 @@ См. [сторожевые хуки](../advanced/navigation-guards.md). - С версии 2.5.0+ все три методы возвращают функцию, которая удаляет зарегистрированный хук. + С версии 2.5.0+ все три метода возвращают функцию, которая удаляет зарегистрированный хук. - **router.push(location, onComplete?, onAbort?)** - **router.replace(location, onComplete?, onAbort?)** From 75fd8a6aac0101d6e7fdc1000cb23492f4487589 Mon Sep 17 00:00:00 2001 From: Alex-Sokolov Date: Mon, 24 Apr 2017 22:30:12 +0300 Subject: [PATCH 03/38] =?UTF-8?q?router-link.md=20=D0=B8=D1=81=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ru/api/router-link.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/api/router-link.md b/docs/ru/api/router-link.md index b8dca03fc..ad0c5a3b2 100644 --- a/docs/ru/api/router-link.md +++ b/docs/ru/api/router-link.md @@ -124,7 +124,7 @@ - По умолчанию: `"router-link-exact-active"` - Укажите активный CSS-класс, применяемый когда ссылка активна с точным соответствием маршрута. Обратите внимание, что значение по умолчанию также может быть настроено глобально с помощью опции `linkExactActiveClass` в конструкторе маршрутизатора. + Укажите активный CSS-класс, применяемый когда ссылка активна с точным соответствием маршрута. Обратите внимание, что значение по умолчанию также может быть настроено глобально с помощью опции `linkExactActiveClass` в конструкторе VueRouter. ### Применение класса активности ко внешнему элементу From 3f1a8ba6a2c652574a5bac6619509b2dd2485d97 Mon Sep 17 00:00:00 2001 From: Alex-Sokolov Date: Mon, 24 Apr 2017 22:32:02 +0300 Subject: [PATCH 04/38] =?UTF-8?q?navigation-guards.md=20=D0=B8=D1=81=D0=BF?= =?UTF-8?q?=D1=80=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=B0=20=D0=BE=D0=BF=D0=B5?= =?UTF-8?q?=D1=87=D0=B0=D1=82=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ru/advanced/navigation-guards.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/advanced/navigation-guards.md b/docs/ru/advanced/navigation-guards.md index dbba36995..8de0c2819 100644 --- a/docs/ru/advanced/navigation-guards.md +++ b/docs/ru/advanced/navigation-guards.md @@ -2,7 +2,7 @@ Как следует из названия, сторожевые хуки `Vue-router` используются для редиректов или отмены навигационных переходов. Есть несколько способов внедрить сторожевой хук: глобально, для конкретного пути, или для конкретного компонента. -Следует помнить, что **изменение параметров маршрута не вызывает выполнения сторожевых хуков enter/leave**. Вы можете добавить [watch на объект `$route`](../essentials/dynamic-matching.md#отслеживание-изменений-параметров) для отслеживания этих изменений, или использовать хук `beforeRouteUpadte`. +Следует помнить, что **изменение параметров маршрута не вызывает выполнения сторожевых хуков enter/leave**. Вы можете добавить [watch на объект `$route`](../essentials/dynamic-matching.md#отслеживание-изменений-параметров) для отслеживания этих изменений, или использовать хук `beforeRouteUpdate`. ### Глобальные хуки From d0c6b28b2af89ca686b7ef9c2e3d322cfdc851fd Mon Sep 17 00:00:00 2001 From: Alex Sokolov Date: Wed, 10 May 2017 12:54:08 +0300 Subject: [PATCH 05/38] =?UTF-8?q?getting-started.md=20standalone=20->=20?= =?UTF-8?q?=D0=BF=D0=BE=D0=BB=D0=BD=D0=B0=D1=8F=20=D1=81=D0=B1=D0=BE=D1=80?= =?UTF-8?q?=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ru/essentials/getting-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/essentials/getting-started.md b/docs/ru/essentials/getting-started.md index c0876cdd9..db8bde718 100644 --- a/docs/ru/essentials/getting-started.md +++ b/docs/ru/essentials/getting-started.md @@ -4,7 +4,7 @@ Создать одностраничное приложение используя Vue.js и Vue-router очень просто. Используя Vue.js, мы уже компонуем своё приложение из компонентов. Добавляя Vue-router, мы просто сопоставляем компонентам пути, и указываем, где именно их отображать. Вот простой пример: -> Все примеры используют standalone-сборку Vue, которая позволяет использовать парсинг шаблонов. Подробнее о разнице сборок можно почитать [в документации к Vue.js](https://ru.vuejs.org/v2/guide/installation.html#Объяснение-различных-сборок). +> Все примеры используют полную сборку Vue, которая позволяет использовать парсинг шаблонов. Подробнее о разнице сборок можно почитать [в документации к Vue.js](https://ru.vuejs.org/v2/guide/installation.html#Объяснение-различных-сборок). ### HTML From 608cf5c05335ce0be759a52c3ad1d71828783df4 Mon Sep 17 00:00:00 2001 From: Alex Sokolov Date: Mon, 29 May 2017 14:44:45 +0300 Subject: [PATCH 06/38] =?UTF-8?q?data-fetching.md=20=D0=B1=D1=8D=D0=BA?= =?UTF-8?q?=D1=82=D0=B8=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ru/advanced/data-fetching.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/advanced/data-fetching.md b/docs/ru/advanced/data-fetching.md index 7ee7201db..6a4482431 100644 --- a/docs/ru/advanced/data-fetching.md +++ b/docs/ru/advanced/data-fetching.md @@ -54,7 +54,7 @@ export default { fetchData () { this.error = this.post = null this.loading = true - // замените здесь getPost используемым методом получения данных / доступа к API + // замените здесь `getPost` используемым методом получения данных / доступа к API getPost(this.$route.params.id, (err, post) => { this.loading = false if (err) { From e9190953c5b81d828ba0ee1f59736facafd80917 Mon Sep 17 00:00:00 2001 From: Alex Sokolov Date: Mon, 29 May 2017 14:44:53 +0300 Subject: [PATCH 07/38] =?UTF-8?q?lazy-loading.md=20=D0=B1=D1=8D=D0=BA?= =?UTF-8?q?=D1=82=D0=B8=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ru/advanced/lazy-loading.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/ru/advanced/lazy-loading.md b/docs/ru/advanced/lazy-loading.md index bc6b44261..c5324edcf 100644 --- a/docs/ru/advanced/lazy-loading.md +++ b/docs/ru/advanced/lazy-loading.md @@ -2,13 +2,13 @@ При использовании модульного сборщика, результирующая JavaScript-сборка может оказаться довольно большой, что негативно сказывается на времени загрузки страницы. В некоторых случаях было бы эффективнее разделить компоненты каждого пути на отдельные минисборки, и загружать их только при переходе к соответствующему пути. -Совместное использование [асинхронной загрузки компонентов](https://ru.vuejs.org/v2/guide/components.html#Асинхронные-компоненты) Vue и [разделения кода](https://webpack.js.org/guides/code-splitting-require/) WebPack делает реализацию ленивой загрузки компонентов в зависимости от путей тривиальной. +Совместное использование [асинхронной загрузки компонентов](https://ru.vuejs.org/v2/guide/components.html#Асинхронные-компоненты) Vue и [разделения кода](https://webpack.js.org/guides/code-splitting-require/) Webpack делает реализацию ленивой загрузки компонентов в зависимости от путей тривиальной. Всё, что требуется — определить компоненты путей как асинхронные: ``` js const Foo = resolve => { - // require.ensure — это специальный синтаксис Webpack'а для определения точки разделения кода. + // `require.ensure` — это специальный синтаксис Webpack'а для определения точки разделения кода. require.ensure(['./Foo.vue'], () => { resolve(require('./Foo.vue')) }) From 706b0ee58facf5ac2173c67bb7d82effcffa15b8 Mon Sep 17 00:00:00 2001 From: Alex Sokolov Date: Mon, 29 May 2017 14:45:02 +0300 Subject: [PATCH 08/38] =?UTF-8?q?transitions.md=20=D0=B1=D1=8D=D0=BA=D1=82?= =?UTF-8?q?=D0=B8=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ru/advanced/transitions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/advanced/transitions.md b/docs/ru/advanced/transitions.md index 795ae1c7f..adcf8a18f 100644 --- a/docs/ru/advanced/transitions.md +++ b/docs/ru/advanced/transitions.md @@ -44,7 +44,7 @@ const Bar = { ``` ``` js -// затем, в родительском компоненте, будем следить за переменной $route, +// затем, в родительском компоненте, будем следить за переменной `$route`, // чтобы определить, какой анимационный переход применить watch: { From 209cef0d67bd1570ecc33a1751519ed091036ff6 Mon Sep 17 00:00:00 2001 From: Alex Sokolov Date: Mon, 29 May 2017 14:45:09 +0300 Subject: [PATCH 09/38] =?UTF-8?q?route-object.md=20=D0=B1=D1=8D=D0=BA?= =?UTF-8?q?=D1=82=D0=B8=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ru/api/route-object.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/ru/api/route-object.md b/docs/ru/api/route-object.md index 0c1354dcd..2f6bd0b8e 100644 --- a/docs/ru/api/route-object.md +++ b/docs/ru/api/route-object.md @@ -16,7 +16,7 @@ ``` js router.beforeEach((to, from, next) => { - // как to так и from являются объектами пути + // как `to` так и `from` являются объектами пути }) ``` @@ -25,7 +25,7 @@ ``` js const router = new VueRouter({ scrollBehavior (to, from, savedPosition) { - // как to так и from являются объектами пути + // как `to` так и `from` являются объектами пути } }) ``` From 1739ecffed442443de87649be31a4a22c6bc9dbe Mon Sep 17 00:00:00 2001 From: Alex Sokolov Date: Mon, 29 May 2017 14:45:16 +0300 Subject: [PATCH 10/38] =?UTF-8?q?router-link.md=20=D0=B1=D1=8D=D0=BA=D1=82?= =?UTF-8?q?=D0=B8=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ru/api/router-link.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/ru/api/router-link.md b/docs/ru/api/router-link.md index ad0c5a3b2..9ff76ec59 100644 --- a/docs/ru/api/router-link.md +++ b/docs/ru/api/router-link.md @@ -27,10 +27,10 @@ Home - + Home - + Home @@ -39,7 +39,7 @@ User - + Register ``` @@ -100,7 +100,7 @@ Одним из следствий этого подхода является тот факт, что корневая ссылка `` будет считаться активной всегда. Чтобы заставить ссылку считаться активной только при полном совпадении, используйте входной параметр `exact`: ``` html - + ``` From 5084370e1500c19bfa34d343c76ec2dbe9caa844 Mon Sep 17 00:00:00 2001 From: Alex Sokolov Date: Mon, 29 May 2017 14:45:23 +0300 Subject: [PATCH 11/38] =?UTF-8?q?getting-started.md=20=D0=B1=D1=8D=D0=BA?= =?UTF-8?q?=D1=82=D0=B8=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ru/essentials/getting-started.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/ru/essentials/getting-started.md b/docs/ru/essentials/getting-started.md index db8bde718..9b36da84d 100644 --- a/docs/ru/essentials/getting-started.md +++ b/docs/ru/essentials/getting-started.md @@ -17,7 +17,7 @@

- + Go to Foo Go to Bar

@@ -30,7 +30,7 @@ ``` js // 0. При использовании модульной системы (напр. vue-cli), -// импортируйте Vue и VueRouter и затем вызовите Vue.use(VueRouter) +// импортируйте Vue и VueRouter и затем вызовите `Vue.use(VueRouter)` // 1. Определение используемых компонентов // Они могут быть импортированы из внешних файлов @@ -39,7 +39,7 @@ const Bar = { template: '
bar
' } // 2. Определение путей // Каждый путь должен указывать на компонент -// "Компонентом" может быть как созданный через Vue.extend() +// "Компонентом" может быть как созданный через `Vue.extend()` // полноценный конструктор, так и просто объект с настройками компонента // Вложенные пути будут рассмотрены далее. const routes = [ @@ -50,7 +50,7 @@ const routes = [ // 3. Создаём инстанс роутера с опцией `routes` // Можно передать и другие опции, но пока не будем усложнять const router = new VueRouter({ - routes // сокращение от routes: routes + routes // сокращение от `routes: routes` }) // 4. Создаём и монтируем корневой инстанс Vue нашего приложения. From 5fe5297fb7c7da711815a105b7b32d93ef998c85 Mon Sep 17 00:00:00 2001 From: Alex-Sokolov Date: Tue, 27 Jun 2017 20:45:31 +0300 Subject: [PATCH 12/38] =?UTF-8?q?history-mode.md=20=D0=B4=D0=BE=D0=B1?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=20=D1=80=D0=B0=D0=B7=D0=B4=D0=B5?= =?UTF-8?q?=D0=BB=20=D1=81=20=D0=BF=D1=80=D0=B8=D0=BC=D0=B5=D1=80=D0=BE?= =?UTF-8?q?=D0=BC=20=D0=B4=D0=BB=D1=8F=20IIS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ru/essentials/history-mode.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/docs/ru/essentials/history-mode.md b/docs/ru/essentials/history-mode.md index 8d6395969..276b6ff1b 100644 --- a/docs/ru/essentials/history-mode.md +++ b/docs/ru/essentials/history-mode.md @@ -44,6 +44,34 @@ location / { При использовании Node.js/Express, мы рекомендуем пользоваться [connect-history-api-fallback middleware](https://github.com/bripkens/connect-history-api-fallback). +#### Internet Information Services (IIS) +``` + + + + + + + + + + + + + + + + + + + + + + + + +``` + ## Предостережение При таком подходе возникает одно неприятное последствие: сервер больше не будет выдавать ошибки 404, так как обслуживание всех путей отдаётся на откуп клиентскому роутингу. Частично эту проблему можно решить, указав путь по умолчанию во Vue-router: From 15dc5e5042eaaf72cfe4fd1328fc385993231889 Mon Sep 17 00:00:00 2001 From: Alex-Sokolov Date: Tue, 27 Jun 2017 20:48:55 +0300 Subject: [PATCH 13/38] =?UTF-8?q?router-instance.md=20=D0=B4=D0=BE=D0=B1?= =?UTF-8?q?=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD=D0=BE=20=D1=83=D1=82=D0=BE=D1=87?= =?UTF-8?q?=D0=BD=D0=B5=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ru/api/router-instance.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/ru/api/router-instance.md b/docs/ru/api/router-instance.md index a0d0e0960..e31b17caf 100644 --- a/docs/ru/api/router-instance.md +++ b/docs/ru/api/router-instance.md @@ -56,6 +56,9 @@ } ``` + - `current` — текущий маршрут по умолчанию (в большинстве случаем вам не нужно это изменять) + - `append` — позволяет вам добавить путь к маршруту `current` (например, с помощью [`router-link`](router-link.md#props)) + - **router.addRoutes(routes)** > 2.2.0+ From a04a7c436390b8284e6ab70a4ca02504d82a75fd Mon Sep 17 00:00:00 2001 From: Alex-Sokolov Date: Tue, 27 Jun 2017 20:53:11 +0300 Subject: [PATCH 14/38] lazy-loading.md require -> import --- docs/ru/advanced/lazy-loading.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/ru/advanced/lazy-loading.md b/docs/ru/advanced/lazy-loading.md index c5324edcf..a76f64a03 100644 --- a/docs/ru/advanced/lazy-loading.md +++ b/docs/ru/advanced/lazy-loading.md @@ -8,8 +8,8 @@ ``` js const Foo = resolve => { - // `require.ensure` — это специальный синтаксис Webpack'а для определения точки разделения кода. - require.ensure(['./Foo.vue'], () => { + // Вызов `import()` — устанавливает точку разделения кода. + import('./Foo.vue').then(() => { resolve(require('./Foo.vue')) }) } From 083ba23e67f67eef614c025c00aedf13b7dca8fd Mon Sep 17 00:00:00 2001 From: Alex-Sokolov Date: Tue, 27 Jun 2017 21:08:07 +0300 Subject: [PATCH 15/38] =?UTF-8?q?lazy-loading.md=20=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D1=8B=D0=B9=20=D1=81=D0=B8=D0=BD=D1=82=D0=B0=D0=BA=D1=81=D0=B8?= =?UTF-8?q?=D1=81=20=D1=80=D0=B0=D0=B7=D0=B4=D0=B5=D0=BB=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F=20=D0=BA=D0=BE=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ru/advanced/lazy-loading.md | 33 +++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/docs/ru/advanced/lazy-loading.md b/docs/ru/advanced/lazy-loading.md index a76f64a03..b762b02f9 100644 --- a/docs/ru/advanced/lazy-loading.md +++ b/docs/ru/advanced/lazy-loading.md @@ -2,23 +2,26 @@ При использовании модульного сборщика, результирующая JavaScript-сборка может оказаться довольно большой, что негативно сказывается на времени загрузки страницы. В некоторых случаях было бы эффективнее разделить компоненты каждого пути на отдельные минисборки, и загружать их только при переходе к соответствующему пути. -Совместное использование [асинхронной загрузки компонентов](https://ru.vuejs.org/v2/guide/components.html#Асинхронные-компоненты) Vue и [разделения кода](https://webpack.js.org/guides/code-splitting-require/) Webpack делает реализацию ленивой загрузки компонентов в зависимости от путей тривиальной. +Совместное использование [асинхронной загрузки компонентов](https://ru.vuejs.org/v2/guide/components.html#Асинхронные-компоненты) Vue и [разделения кода](https://webpack.js.org/guides/code-splitting-async/) Webpack делает реализацию ленивой загрузки компонентов в зависимости от путей тривиальной. -Всё, что требуется — определить компоненты путей как асинхронные: +Во-первых, асинхронный компонент можно определить как функцию-фабрику, которая возвращает Promise (который должен разрешиться самим компонентом): ``` js -const Foo = resolve => { - // Вызов `import()` — устанавливает точку разделения кода. - import('./Foo.vue').then(() => { - resolve(require('./Foo.vue')) - }) -} +const Foo = () => Promise.resolve({ /* определение компонента */ }) ``` -Можно также упростить запись, используя альтернативный синтаксис разделения кода AMD: +Во-вторых, в Webpack 2 мы можем использовать синтаксис [динамических импортов](https://github.com/tc39/proposal-dynamic-import) для указания точек разделения кода: ``` js -const Foo = resolve => require(['./Foo.vue'], resolve) +import('./Foo.vue') // возвращает Promise +``` + +> Примечание: если вы используете Babel, то нужно будет добавить плагин [syntax-dynamic-import](http://babeljs.io/docs/plugins/syntax-dynamic-import/), чтобы Babel смог корректно обработать синтаксис. + +Эти два пункта — всё необходимое, чтобы определить асинхронный компонент, который Webpack автоматически вынесет в отдельный чанк: + +``` js +const Foo = () => import('./Foo.vue') ``` В конфигурации путей ничего менять не нужно, просто используйте `Foo` как обычно: @@ -33,12 +36,12 @@ const router = new VueRouter({ ### Объединение компонентов в единую минисборку -Иногда может понадобиться объединить в единую минисборку все компоненты, расположенные по определённому пути. Для достижения этой цели можно использовать [именованные минисборки Webpack](https://webpack.js.org/guides/code-splitting-require/#chunkname), указывая имя как третий параметр при вызове `require.ensure`: +Иногда может понадобиться объединить в единую минисборку все компоненты, расположенные по определённому пути. Для достижения этой цели можно использовать [именованные минисборки Webpack](https://webpack.js.org/guides/code-splitting-async/#chunk-names), указывая имя используя специальный синтаксис комментариев (в версиях Webpack > 2.4): ``` js -const Foo = r => require.ensure([], () => r(require('./Foo.vue')), 'group-foo') -const Bar = r => require.ensure([], () => r(require('./Bar.vue')), 'group-foo') -const Baz = r => require.ensure([], () => r(require('./Baz.vue')), 'group-foo') +const Foo = () => import(/* webpackChunkName: "group-foo" */ './Foo.vue') +const Bar = () => import(/* webpackChunkName: "group-foo" */ './Bar.vue') +const Baz = () => import(/* webpackChunkName: "group-foo" */ './Baz.vue') ``` -Webpack сгруппирует все одноимённые асинхронные модули в единую минисборку — что среди прочего будет означать отсутствие необходимости явно указывать зависимости для `require.ensure` (поэтому мы и передаём первым параметром пустой массив). +Webpack сгруппирует все одноимённые асинхронные модули в единую минисборку. From e0251769ba59dbc4d078573b03163ada7192ef1a Mon Sep 17 00:00:00 2001 From: Alex-Sokolov Date: Tue, 27 Jun 2017 21:11:23 +0300 Subject: [PATCH 16/38] =?UTF-8?q?SUMMARY.md=20=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BA=D0=B8=20=D0=BA=202.6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ru/SUMMARY.md | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/docs/ru/SUMMARY.md b/docs/ru/SUMMARY.md index 8abc6c9d5..4465ee147 100644 --- a/docs/ru/SUMMARY.md +++ b/docs/ru/SUMMARY.md @@ -24,9 +24,19 @@ - [Скроллинг](advanced/scroll-behavior.md) - [Ленивая загрузка путей](advanced/lazy-loading.md) - Справочник API - - [router-link](api/router-link.md) - - [router-view](api/router-view.md) - - [Объект route](api/route-object.md) - [Опции конструктора Router'а](api/options.md) + - [routes](api/options.md#routes) + - [mode](api/options.md#mode) + - [base](api/options.md#base) + - [linkActiveClass](api/options.md#linkactiveclass) + - [linkExactActiveClass](api/options.md#linkexactactiveclass) + - [scrollBehavior](api/options.md#scrollbehavior) + - [parseQuery / stringifyQuery](api/options.md#parsequery--stringifyquery) + - [fallback](api/options.md#fallback) - [Инстанс Router'а](api/router-instance.md) + - [Свойства](api/router-instance.md#свойства) + - [Методы](api/router-instance.md#методы) + - [Объект route](api/route-object.md) - [Интеграция с компонентами Vue](api/component-injections.md) + - [router-link](api/router-link.md) + - [router-view](api/router-view.md) From 8d037b8ec608a0288fb87e880ccd058621286939 Mon Sep 17 00:00:00 2001 From: Alex-Sokolov Date: Tue, 27 Jun 2017 21:12:27 +0300 Subject: [PATCH 17/38] =?UTF-8?q?scroll-behavior.md=20=D0=BE=D0=B1=D0=BD?= =?UTF-8?q?=D0=BE=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BA=202.6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ru/advanced/scroll-behavior.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/ru/advanced/scroll-behavior.md b/docs/ru/advanced/scroll-behavior.md index 8e0fd83d1..3955ce30f 100644 --- a/docs/ru/advanced/scroll-behavior.md +++ b/docs/ru/advanced/scroll-behavior.md @@ -20,7 +20,7 @@ const router = new VueRouter({ Функция возвращает объект позиции скролла. Он может иметь одну из двух форм: - `{ x: number, y: number }` -- `{ selector: string }` +- `{ selector: string, offset? : { x: number, y: number }}` (offset поддерживается только в 2.6.0+) Если возвращается пустой объект или приводимое к ложному значение, скроллинга не произойдёт. @@ -53,6 +53,7 @@ scrollBehavior (to, from, savedPosition) { if (to.hash) { return { selector: to.hash + // , offset: { x: 0, y: 10 } } } } From e7356884c66bd9c5861333e8aa5b06ae59a6a238 Mon Sep 17 00:00:00 2001 From: Alex-Sokolov Date: Tue, 27 Jun 2017 21:18:45 +0300 Subject: [PATCH 18/38] =?UTF-8?q?options.md=20=D0=B4=D0=BE=D0=B1=D0=B0?= =?UTF-8?q?=D0=B2=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=B4=D0=BB=D1=8F=202.6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ru/api/options.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/docs/ru/api/options.md b/docs/ru/api/options.md index 0ee982bcf..22b1e032d 100644 --- a/docs/ru/api/options.md +++ b/docs/ru/api/options.md @@ -18,6 +18,10 @@ children?: Array; // для вложенных путей beforeEnter?: (to: Route, from: Route, next: Function) => void; meta?: any; + + // 2.6.0+ + caseSensitive?: boolean; // учитывать ли регистр при сравнении? (по умолчанию: false) + pathToRegexpOptions?: Object; // настройки path-to-regexp для компиляции regex } ``` @@ -85,4 +89,14 @@ - Тип: `Function` - Пользовательские функции для парсинга строки запроса / приведения к строке запроса (функции stringify). Переопределяют значения по умолчанию. \ No newline at end of file + Пользовательские функции для парсинга строки запроса / приведения к строке запроса (функции stringify). Переопределяют значения по умолчанию. + +### fallback + +> 2.6.0+ + +- Тип: `boolean` + + Контролирует, должен ли маршрутизатор возвращаться в режим `hash`, когда браузер не поддерживает `history.pushState`. По умолчанию значение `true`. + + Установка этого параметра в `false` будет вызывать для каждой навигации через `router-link` полное обновление страницы в IE9. Это может быть полезным, когда приложение рендерится на стороне сервера и должно работать в IE9, потому что режим `hash` не работает с SSR. \ No newline at end of file From 4c22515791601ff9f341b232340f9eeb598e2412 Mon Sep 17 00:00:00 2001 From: Alex Sokolov Date: Thu, 29 Jun 2017 09:16:39 +0300 Subject: [PATCH 19/38] =?UTF-8?q?named-routes.md=20=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ru/essentials/named-routes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/essentials/named-routes.md b/docs/ru/essentials/named-routes.md index 46c1a2223..ac89a33b4 100644 --- a/docs/ru/essentials/named-routes.md +++ b/docs/ru/essentials/named-routes.md @@ -14,7 +14,7 @@ const router = new VueRouter({ }) ``` -Чтобы сослаться на именованный маршрут, используйте объектную запись: +Чтобы создать ссылку на именованный маршрут, вы можете передать объект в компонент `router-link` используя входной параметр `to`: ``` html Пользователь From 64d275bdb184bcd3fccea667c5ab89570a756d13 Mon Sep 17 00:00:00 2001 From: Alex-Sokolov Date: Sat, 1 Jul 2017 11:48:28 +0300 Subject: [PATCH 20/38] =?UTF-8?q?SUMMARY.md=20=D1=8D=D0=BA=D0=B7=D0=B5?= =?UTF-8?q?=D0=BC=D0=BF=D0=BB=D1=8F=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ru/SUMMARY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/SUMMARY.md b/docs/ru/SUMMARY.md index 4465ee147..9eeca8ba6 100644 --- a/docs/ru/SUMMARY.md +++ b/docs/ru/SUMMARY.md @@ -33,7 +33,7 @@ - [scrollBehavior](api/options.md#scrollbehavior) - [parseQuery / stringifyQuery](api/options.md#parsequery--stringifyquery) - [fallback](api/options.md#fallback) - - [Инстанс Router'а](api/router-instance.md) + - [Экземпляр Router](api/router-instance.md) - [Свойства](api/router-instance.md#свойства) - [Методы](api/router-instance.md#методы) - [Объект route](api/route-object.md) From 2e1f7f74a34817204815e06a3a8614ab1b9ccbb1 Mon Sep 17 00:00:00 2001 From: Alex-Sokolov Date: Sat, 1 Jul 2017 11:48:46 +0300 Subject: [PATCH 21/38] =?UTF-8?q?navigation-guards.md=20=D1=8D=D0=BA=D0=B7?= =?UTF-8?q?=D0=B5=D0=BC=D0=BF=D0=BB=D1=8F=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ru/advanced/navigation-guards.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/ru/advanced/navigation-guards.md b/docs/ru/advanced/navigation-guards.md index 8de0c2819..28bfc3820 100644 --- a/docs/ru/advanced/navigation-guards.md +++ b/docs/ru/advanced/navigation-guards.md @@ -85,8 +85,8 @@ const Foo = { template: `...`, beforeRouteEnter (to, from, next) { // вызывается до подтверждения пути, соответствующего этому компоненту. - // НЕ имеет доступа к контексту инстанса компонента `this`, - // так как к моменту вызова инстанс ещё не создан! + // НЕ имеет доступа к контексту экземпляра компонента `this`, + // так как к моменту вызова экземпляр ещё не создан! }, beforeRouteUpdate (to, from, next) { // вызывается когда маршрут, что рендерит этот компонент изменился, @@ -98,19 +98,19 @@ const Foo = { }, beforeRouteLeave (to, from, next) { // вызывается перед переходом от пути, соответствующего текущему компоненту; - // имеет доступ к контексту инстанса компонента `this`. + // имеет доступ к контексту экземпляра компонента `this`. } } ``` -Хук `beforeRouteEnter` **НЕ** имеет доступа к `this`, так как к моменту его вызова навигация ещё не подтверждена, а значит и инстанс компонента ещё не создан. +Хук `beforeRouteEnter` **НЕ** имеет доступа к `this`, так как к моменту его вызова навигация ещё не подтверждена, а значит и экземпляр компонента ещё не создан. -Тем не менее, доступ к инстансу можно получить, передав коллбэк в `next`. Эта функция будет вызвана после подтверждения навигации, а экземпляр компонента будет передан в неё в качестве параметра: +Тем не менее, доступ к экземпляру можно получить, передав коллбэк в `next`. Эта функция будет вызвана после подтверждения навигации, а экземпляр компонента будет передан в неё в качестве параметра: ``` js beforeRouteEnter (to, from, next) { next(vm => { - // инстанс компонента доступен как `vm` + // экземпляр компонента доступен как `vm` }) } ``` From d462942e9528ea0ae6003b95d13a09ce11ebc37a Mon Sep 17 00:00:00 2001 From: Alex-Sokolov Date: Sat, 1 Jul 2017 11:49:04 +0300 Subject: [PATCH 22/38] =?UTF-8?q?scroll-behavior.md=20=D1=8D=D0=BA=D0=B7?= =?UTF-8?q?=D0=B5=D0=BC=D0=BF=D0=BB=D1=8F=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ru/advanced/scroll-behavior.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/advanced/scroll-behavior.md b/docs/ru/advanced/scroll-behavior.md index 3955ce30f..0f64c5a22 100644 --- a/docs/ru/advanced/scroll-behavior.md +++ b/docs/ru/advanced/scroll-behavior.md @@ -4,7 +4,7 @@ **Замечание: эта возможность работает только в режиме HTML5 history mode.** -При создании инстанса роутера, вы можете указать функцию `scrollBehavior`: +При создании экземпляра роутера, вы можете указать функцию `scrollBehavior`: ``` js const router = new VueRouter({ From 6dd25fad96bc308654902135bceee61f13cae09c Mon Sep 17 00:00:00 2001 From: Alex-Sokolov Date: Sat, 1 Jul 2017 11:49:20 +0300 Subject: [PATCH 23/38] =?UTF-8?q?component-inhections.md=20=D1=8D=D0=BA?= =?UTF-8?q?=D0=B7=D0=B5=D0=BC=D0=BF=D0=BB=D1=8F=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ru/api/component-injections.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/ru/api/component-injections.md b/docs/ru/api/component-injections.md index a5a041615..872a2c976 100644 --- a/docs/ru/api/component-injections.md +++ b/docs/ru/api/component-injections.md @@ -2,11 +2,11 @@ ### Добавляемые свойства -Перечисленные ниже свойства становятся доступными в каждом дочернем компоненте при передаче роутера через опцию `router` корневого инстанса приложения. +Перечисленные ниже свойства становятся доступными в каждом дочернем компоненте при передаче роутера через опцию `router` корневого экземпляра приложения. - #### $router - Инстанс роутера. + Экземпляр роутера. - #### $route From 6a1109ab529179816a501f3fc691e1dcb62b15ac Mon Sep 17 00:00:00 2001 From: Alex-Sokolov Date: Sat, 1 Jul 2017 11:49:30 +0300 Subject: [PATCH 24/38] =?UTF-8?q?router-instance.md=20=D1=8D=D0=BA=D0=B7?= =?UTF-8?q?=D0=B5=D0=BC=D0=BF=D0=BB=D1=8F=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ru/api/router-instance.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/ru/api/router-instance.md b/docs/ru/api/router-instance.md index e31b17caf..3e8113359 100644 --- a/docs/ru/api/router-instance.md +++ b/docs/ru/api/router-instance.md @@ -1,4 +1,4 @@ -# Инстанс Router'а +# Экземпляр Router ### Свойства @@ -6,7 +6,7 @@ - тип: `Vue instance` - Корневой инстанс Vue, в который был интегрирован `router`. + Корневой экземпляр Vue, в который был интегрирован `router`. #### router.mode @@ -40,7 +40,7 @@ - **router.getMatchedComponents(location?)** - Возвращает массив компонентов (определение/конструктор, не инстансы), совпадающих с текущим путём. В основном используется во время рендеринга на сервере для получения необходимых данных. + Возвращает массив компонентов (определение/конструктор, не экземпляры), совпадающих с текущим путём. В основном используется во время рендеринга на сервере для получения необходимых данных. - **router.resolve(location, current?, append?)** From 16af373899d346c44ccb86a8e0ae649a778f8e9b Mon Sep 17 00:00:00 2001 From: Alex-Sokolov Date: Sat, 1 Jul 2017 11:49:43 +0300 Subject: [PATCH 25/38] =?UTF-8?q?dynamic-matching.md=20=D1=8D=D0=BA=D0=B7?= =?UTF-8?q?=D0=B5=D0=BC=D0=BF=D0=BB=D1=8F=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ru/essentials/dynamic-matching.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/essentials/dynamic-matching.md b/docs/ru/essentials/dynamic-matching.md index 3d7eb9a04..4ba304b69 100644 --- a/docs/ru/essentials/dynamic-matching.md +++ b/docs/ru/essentials/dynamic-matching.md @@ -38,7 +38,7 @@ const User = { ### Отслеживание изменений параметров -Важно отметить, что при переходе от `/user/foo` к `/user/bar` **будет повторно использован тот же самый инстанс компонента**. Поскольку оба пути указывают на один и тот же компонент, этот подход эффективнее, чем уничтожение и повторное создание инстанса. **Но это означает, что хуки жизненного цикла компонента при этом вызваны не будут**. +Важно отметить, что при переходе от `/user/foo` к `/user/bar` **будет повторно использован тот же самый экземпляр компонента**. Поскольку оба пути указывают на один и тот же компонент, этот подход эффективнее, чем уничтожение и повторное создание экземпляра. **Но это означает, что хуки жизненного цикла компонента при этом вызваны не будут**. Чтобы отследить изменения параметров пути в рамках компонента, нужно просто установить наблюдение за объектом `$route`: From eed6cc58126d3e39e1702d6b5b95b839686402ae Mon Sep 17 00:00:00 2001 From: Alex-Sokolov Date: Sat, 1 Jul 2017 11:49:54 +0300 Subject: [PATCH 26/38] =?UTF-8?q?getting-started.md=20=D1=8D=D0=BA=D0=B7?= =?UTF-8?q?=D0=B5=D0=BC=D0=BF=D0=BB=D1=8F=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ru/essentials/getting-started.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/ru/essentials/getting-started.md b/docs/ru/essentials/getting-started.md index 9b36da84d..66ac1a5e8 100644 --- a/docs/ru/essentials/getting-started.md +++ b/docs/ru/essentials/getting-started.md @@ -47,14 +47,14 @@ const routes = [ { path: '/bar', component: Bar } ] -// 3. Создаём инстанс роутера с опцией `routes` +// 3. Создаём экземпляр роутера с опцией `routes` // Можно передать и другие опции, но пока не будем усложнять const router = new VueRouter({ routes // сокращение от `routes: routes` }) -// 4. Создаём и монтируем корневой инстанс Vue нашего приложения. -// Удостоверьтесь, что передали инстанс роутера в опции `router`, +// 4. Создаём и монтируем корневой экземпляр Vue нашего приложения. +// Удостоверьтесь, что передали экземпляр роутера в опции `router`, // что позволит приложению знать о его наличии const app = new Vue({ router From ac597ef4af499d12ff5dda3f61fe7f37d66ac42d Mon Sep 17 00:00:00 2001 From: Alex-Sokolov Date: Sat, 1 Jul 2017 11:50:06 +0300 Subject: [PATCH 27/38] =?UTF-8?q?named-routes.md=20=D1=8D=D0=BA=D0=B7?= =?UTF-8?q?=D0=B5=D0=BC=D0=BF=D0=BB=D1=8F=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ru/essentials/named-routes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/essentials/named-routes.md b/docs/ru/essentials/named-routes.md index ac89a33b4..8c1b803c2 100644 --- a/docs/ru/essentials/named-routes.md +++ b/docs/ru/essentials/named-routes.md @@ -1,6 +1,6 @@ # Именованные пути -Зачастую, при создании ссылок и вызове навигационных методов, удобно ссылаться на путь по его имени. Установить имя пути можно в опциях `routes` при создании инстанса Router'а: +Зачастую, при создании ссылок и вызове навигационных методов, удобно ссылаться на путь по его имени. Установить имя пути можно в опциях `routes` при создании экземпляра Router'а: ``` js const router = new VueRouter({ From 6d462faa9626e3057746cde206516f977a13d65e Mon Sep 17 00:00:00 2001 From: Alex-Sokolov Date: Sat, 1 Jul 2017 11:50:14 +0300 Subject: [PATCH 28/38] =?UTF-8?q?navigation.md=20=D1=8D=D0=BA=D0=B7=D0=B5?= =?UTF-8?q?=D0=BC=D0=BF=D0=BB=D1=8F=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ru/essentials/navigation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/ru/essentials/navigation.md b/docs/ru/essentials/navigation.md index dad2183fd..7315b6a6c 100644 --- a/docs/ru/essentials/navigation.md +++ b/docs/ru/essentials/navigation.md @@ -1,6 +1,6 @@ # Императивная навигация -Помимо декларативного использования `` для создания ссылок, можно использовать роутер и императивно, напрямую вызывая методы его инстанса. +Помимо декларативного использования `` для создания ссылок, можно использовать роутер и императивно, напрямую вызывая методы его экземпляра. #### `router.push(location, onComplete?, onAbort?)` From 13d10bb08c96b70507cd072af64c85cfe0d119a1 Mon Sep 17 00:00:00 2001 From: Alex-Sokolov Date: Sat, 1 Jul 2017 12:11:32 +0300 Subject: [PATCH 29/38] =?UTF-8?q?data-fetching.md=20=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ru/advanced/data-fetching.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/ru/advanced/data-fetching.md b/docs/ru/advanced/data-fetching.md index 6a4482431..aa5e251c9 100644 --- a/docs/ru/advanced/data-fetching.md +++ b/docs/ru/advanced/data-fetching.md @@ -4,7 +4,7 @@ - **Запросив данные после перехода**: сначала перейти к новому пути, затем запросить данные в хуке жизненного цикла целевого компонента. По мере загрузки данных отобразить индикатор состояния загрузки. -- **Запросив данные перед переходом**: запросить данные в сторожевом хуке роутера, и завершить навигацию уже по когда они будут получены. +- **Запросив данные перед переходом**: запросить данные в сторожевом хуке роутера, и завершить навигацию уже когда они будут получены. С технической точки зрения, оба способа годятся — выбор зависит от того, какой UX вы хотите получить. @@ -18,7 +18,7 @@