+ ` は動的コンポーネントなので、 `` コンポーネントを使うのと同じ方法でトランジションを適用することができます。
``` html
diff --git a/docs/ja/guide/essentials/dynamic-matching.md b/docs/ja/guide/essentials/dynamic-matching.md
index b28b76a3f..ab4d05902 100644
--- a/docs/ja/guide/essentials/dynamic-matching.md
+++ b/docs/ja/guide/essentials/dynamic-matching.md
@@ -1,5 +1,7 @@
# 動的ルートマッチング
+
+
パターンを使って同じコンポーネントにルートをマップする必要がしばしばあるでしょう。例えば、 `User` コンポーネントは全てのユーザーに対して描画されるべきであるが、それぞれ異なるユーザー ID を持つ場合などです。`vue-router` ではパスの中の動的なセグメントを使用して実現できます。
``` js
diff --git a/docs/ja/guide/essentials/history-mode.md b/docs/ja/guide/essentials/history-mode.md
index 26081d159..31dcad5e3 100644
--- a/docs/ja/guide/essentials/history-mode.md
+++ b/docs/ja/guide/essentials/history-mode.md
@@ -1,5 +1,7 @@
# HTML5 History モード
+
+
`vue-router` のデフォルトは _hash モード_ です - 完全な URL を hash を使ってシミュレートし、 URL が変更された時にページのリロードが起きません。
その hash を取り除くために、ページのリロード無しに URL 遷移を実現する `history.pushState` API を利用したルーターの **history モード** を使うことができます。
@@ -50,9 +52,9 @@ const fs = require('fs')
const httpPort = 80
http.createServer((req, res) => {
- fs.readFile('index.htm', 'utf-8', (err, content) => {
+ fs.readFile('index.html', 'utf-8', (err, content) => {
if (err) {
- console.log('We cannot open "index.htm" file.')
+ console.log('We cannot open "index.html" file.')
}
res.writeHead(200, {
diff --git a/docs/ja/guide/essentials/named-routes.md b/docs/ja/guide/essentials/named-routes.md
index 24946a609..727e055da 100644
--- a/docs/ja/guide/essentials/named-routes.md
+++ b/docs/ja/guide/essentials/named-routes.md
@@ -1,5 +1,7 @@
# 名前付きルート
+
+
しばしば、名前を使ってルートを特定できるとより便利です。特にルートにリンクするときやナビゲーションを実行するときなどです。Router インスタンスを作成するときに `routes` オプションの中でルートに名前を付けることができます。
``` js
diff --git a/docs/ja/guide/essentials/named-views.md b/docs/ja/guide/essentials/named-views.md
index 7cc117cab..61bc2e956 100644
--- a/docs/ja/guide/essentials/named-views.md
+++ b/docs/ja/guide/essentials/named-views.md
@@ -1,5 +1,7 @@
# 名前付きビュー
+
+
しばしば、ネストをさせずに同時に複数の view を表示する必要があるでしょう。例えば、`sidebar` view と `main` view を使ったレイアウトを作成する時です。そんな時に名前付きビューは便利です。あなたの view に 1 つのアウトレットを持つのではなく、複数のそれぞれが名前付きの view を持つことができます。名前を持たない `router-view` はその名前として `default` が付与されます。
``` html
diff --git a/docs/ja/guide/essentials/navigation.md b/docs/ja/guide/essentials/navigation.md
index ac048742a..a3ee7c884 100644
--- a/docs/ja/guide/essentials/navigation.md
+++ b/docs/ja/guide/essentials/navigation.md
@@ -1,5 +1,7 @@
# プログラムによるナビゲーション
+
+
宣言的なナビゲーションとしてアンカータグを作成する `` がありますが、ルーターのインスタンスメソッドを使ったプログラムによる方法でもそれは可能です。
#### `router.push(location, onComplete?, onAbort?)`
diff --git a/docs/ja/guide/essentials/nested-routes.md b/docs/ja/guide/essentials/nested-routes.md
index da153569a..5a5a9a5d5 100644
--- a/docs/ja/guide/essentials/nested-routes.md
+++ b/docs/ja/guide/essentials/nested-routes.md
@@ -1,5 +1,7 @@
# ネストされたルート
+
+
実際のアプリケーションの UI では通常複数のレベルの階層的にネストしたコンポーネントで構成されます。ネストされたコンポーネントの特定の構造に対して URL のセグメントを対応させることはよくあります。例:
```
diff --git a/docs/ja/guide/essentials/passing-props.md b/docs/ja/guide/essentials/passing-props.md
index 11d35aa5b..ada50ab4c 100644
--- a/docs/ja/guide/essentials/passing-props.md
+++ b/docs/ja/guide/essentials/passing-props.md
@@ -1,5 +1,7 @@
# ルートコンポーネントにプロパティを渡す
+
+
コンポーネントで `$route` を使うとコンポーネントとルートの間に密結合が生まれ、コンポーネントが特定のURLでしか使用できないなど柔軟性が制限されます。
コンポーネントをルーターから分離するために `props` オプションを使います:
diff --git a/docs/ja/guide/essentials/redirect-and-alias.md b/docs/ja/guide/essentials/redirect-and-alias.md
index cd182a776..216e75b14 100644
--- a/docs/ja/guide/essentials/redirect-and-alias.md
+++ b/docs/ja/guide/essentials/redirect-and-alias.md
@@ -1,5 +1,7 @@
# リダイレクトとエイリアス
+
+
### リダイレクト
`routes` 設定でリダイレクトが可能です。`/a` から `/b` へリダイレクトする例:
@@ -35,7 +37,7 @@ const router = new VueRouter({
})
```
-[ナビゲーションガード](../advanced/navigation-guards.md)はリダイレクトするルートに提供されず、ターゲット上のみに適用されるということに注意してください。例では、`beforeEnter` または `beforeLeave` ガードを `/a` ルートに追加しても効果がありません。
+[ナビゲーションガード](../advanced/navigation-guards.md)はリダイレクトするルートに提供されず、ターゲット上のみに適用されるということに注意してください。例では、`beforeEnter` ガードを `/a` ルートに追加しても効果がありません。
その他の高度な使い方として、[例](https://github.com/vuejs/vue-router/blob/dev/examples/redirect/app.js) をご参照ください。
diff --git a/docs/ja/installation.md b/docs/ja/installation.md
index 2db7585bd..a61b585bd 100644
--- a/docs/ja/installation.md
+++ b/docs/ja/installation.md
@@ -32,6 +32,14 @@ Vue.use(VueRouter)
グローバルな script タグを使っている場合は必要ありません。
+## Vue CLI
+
+[Vue CLI](https://cli.vuejs.org/) を使用している場合、 Vue Router をプラグインで追加することができます。2つのサンプルルートと同様、上記のコードを CLI に生成させることができます。**`App.vue`もまた上書きされるため、** プロジェクト内で以下のコマンドを実行する前にファイルをバックアップしておいてください:
+
+```sh
+vue add router
+```
+
### 開発用ビルド
もし最新の開発用ビルドを使用したい場合は、GitHub から直接クローンして `vue-router` をご自身でビルドしてください。
Loading...
diff --git a/docs/ja/guide/advanced/lazy-loading.md b/docs/ja/guide/advanced/lazy-loading.md
index fee21f2a5..73582cae3 100644
--- a/docs/ja/guide/advanced/lazy-loading.md
+++ b/docs/ja/guide/advanced/lazy-loading.md
@@ -1,5 +1,7 @@
# 遅延ローディングルート
+
+
バンドラーを使ってアプリケーションを構築している時、バンドルされる JavaScript が非常に大きいものになり得ます。結果的にページのロード時間に影響を与えてしまいます。もし各ルートコンポーネントごとに別々のチャンクにして、訪れたルートの時だけロードできればより効率的でしょう。
Vue の [非同期コンポーネント機能](http://jp.vuejs.org/guide/components.html#非同期コンポーネント) と webpack の [コード分割機能](https://webpack.js.org/guides/code-splitting-async/) を組み合わせることでとても簡単に遅延ロードするルートコンポーネントができます。
diff --git a/docs/ja/guide/advanced/meta.md b/docs/ja/guide/advanced/meta.md
index b7f876e65..9c402fdf0 100644
--- a/docs/ja/guide/advanced/meta.md
+++ b/docs/ja/guide/advanced/meta.md
@@ -1,5 +1,7 @@
# ルートメタフィールド
+
+
ルートの定義をする際に `meta` フィールドを含めることができます。
``` js
diff --git a/docs/ja/guide/advanced/navigation-guards.md b/docs/ja/guide/advanced/navigation-guards.md
index 13add0f21..fc5d71a50 100644
--- a/docs/ja/guide/advanced/navigation-guards.md
+++ b/docs/ja/guide/advanced/navigation-guards.md
@@ -1,5 +1,7 @@
# ナビゲーションガード
+
+
この名前が示すように、 `vue-router` によって提供されるナビゲーションガードは、リダイレクトもしくはキャンセルによって遷移をガードするために主に使用されます。ルートナビゲーション処理 (グローバル、ルート単位、コンポーネント内) をフックする多くの方法があります。
**パラメータまたはクエリの変更は enter/leave ナビゲーションガードをトリガーしない** ということを覚えておいてください。それらの変更に対応するために [`$route` オブジェクトを監視する](../essentials/dynamic-matching.md#reacting-to-params-changes)、またはコンポーネント内ガード `beforeRouteUpdate` を使用するかの、どちらかができます。
@@ -34,7 +36,24 @@ router.beforeEach((to, from, next) => {
- **`next(error)`**: (2.4.0+) `next` に渡された引数が `Error` インスタンスである場合、ナビゲーションは中止され、エラーは `router.onError()` を介して登録されたコールバックに渡されます。
- **常に `next` 関数を呼び出すようにしてください。そうでなければ、フックは決して解決されません。**
+ **与えられたナビゲーションガードを通過する任意のパスにおいて、常に 1 回だけ `next` 関数が呼び出されるようにしてください。それは 1 回以上出現することがありますが、論理パスが重ならないときだけで、そうしないないとフックは決して解決されない、またはエラーが発生します。** 以下は、ユーザーが認証されていない場合、`/login` にリダレクトするための例です:
+
+```js
+// BAD
+router.beforeEach((to, from, next) => {
+ if (to.name !== 'Login' && !isAuthenticated) next({ name: 'Login' })
+ // ユーザーが認証されていない場合、 `next` は2回呼ばれる
+ next()
+})
+```
+
+```js
+// GOOD
+router.beforeEach((to, from, next) => {
+ if (to.name !== 'Login' && !isAuthenticated) next({ name: 'Login' })
+ else next()
+})
+```
## グローバル解決ガード
@@ -140,7 +159,7 @@ beforeRouteLeave (to, from, next) {
## 完全なナビゲーション解決フロー
1. ナビゲーションがトリガされる
-2. 非アクティブ化されたコンポーネントで leave ガードを呼ぶ
+2. 非アクティブ化されたコンポーネントで `beforeRouteLeave` ガードを呼ぶ
3. グローバル `beforeEach` ガードを呼ぶ
4. 再利用されるコンポーネントで `beforeRouteUpdate` ガードを呼ぶ (2.2 以降)
5. ルート設定内の `beforeEnter` を呼ぶ
diff --git a/docs/ja/guide/advanced/scroll-behavior.md b/docs/ja/guide/advanced/scroll-behavior.md
index ed6035599..5525f29cc 100644
--- a/docs/ja/guide/advanced/scroll-behavior.md
+++ b/docs/ja/guide/advanced/scroll-behavior.md
@@ -1,5 +1,7 @@
# スクロールの振る舞い
+
+
クライアントサイドのルーティングを使っている時に、新しいルートに対してスクロールをトップへ移動させたいかもしれません、もしくは実際のページリロードがしているように history 要素のスクロールポジションを保持したいこともあるかもしれません。 `vue-router` ではこれらをさらによく実現できます。ルートナビゲーションにおけるスクロールの挙動を完全にカスタマイズすることができます。
**注意: この機能は ブラウザが `history.pushState` をサポートしている場合のみ動作します。**
diff --git a/docs/ja/guide/advanced/transitions.md b/docs/ja/guide/advanced/transitions.md
index bb76c1577..0bf82f52c 100644
--- a/docs/ja/guide/advanced/transitions.md
+++ b/docs/ja/guide/advanced/transitions.md
@@ -1,5 +1,7 @@
# トランジション
+
+
基本的に `