Skip to content

Commit 74dec52

Browse files
committed
docs: [ja] add data hook promise syntax sugar translation
1 parent bc5cb24 commit 74dec52

File tree

1 file changed

+32
-1
lines changed

1 file changed

+32
-1
lines changed

docs/ja/pipeline/data.md

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
### 引数
66

7-
- [`transition {Transition}`](hooks.md#transition-object)
7+
- [`transition {Transition}`](hooks.md#トランジションオブジェクト)
88

99
`transition.next(data)` の呼び出しはコンポーネントの `data` の各プロパティに設定します。例えば `{ a: 1, b: 2 }` が引数に指定される場合、ルーターは `component.$set('a', 1)``component.$set('b', 2)` を呼びます。
1010

@@ -14,6 +14,8 @@
1414
- `resolve(data)` -> `transition.next(data)`
1515
- `reject(reason)` -> `transition.abort(reason)`
1616

17+
または、Promise を含んでいるオブジェクトを返します。詳細は以下の [Promiseシンタックスシュガー](#Promiseシンタックスシュガー) を参照してください。
18+
1719
### 詳細
1820

1921
`data` トランジションフックは、`activate` フックが解決された直後に呼び出され、直前に view の切り替えが実行されます。entering なコンポーネントは、**`$loadingRouteData`** メタプロパティを取得します。そのプロパティは `false` 値で開始し、`data` フックが解決されるとき、`true` に設定します。このプロパティは entering なコンポーネントに対してローディング状態を表示するために使用することができます。
@@ -107,3 +109,32 @@ route: {
107109
</div>
108110
</div>
109111
```
112+
113+
### Promiseシンタックスシュガー
114+
115+
上記のパラレルなデータをフェッチングする例は、複数の Pomise を1つのものに結合するために `Promise.all` を利用するのを要求し、destructuring とフォーマットはまだ面倒です。`vue-router` は Promise (もちろん Promise でないフィールドを含むこともできます) を含んだオブジェクトを返すことができるシンタックスシュガーを提供します。ここでシンタックスシュガーと ES6 を使用する同じ例を示します:
116+
117+
``` js
118+
route: {
119+
data: ({ to: { params: { userId }}}) => ({
120+
user: userService.get(userId),
121+
post: postsService.getForUser(userId)
122+
})
123+
}
124+
```
125+
126+
それらが解決されるとき、ルーターは 対応する Promise が解決した値をコンポーネント `user``post` に設定します。全ての Promise が解決された時、`$loadingRouteData``false` に設定されます。
127+
128+
ES5 での等価:
129+
130+
``` js
131+
route: {
132+
data: function (transition) {
133+
var userId = transition.to.params.userId
134+
return {
135+
user: userService.get(userId),
136+
post: postsService.getForUser(userId)
137+
}
138+
}
139+
}
140+
```

0 commit comments

Comments
 (0)