Skip to content

Commit 9eac4f1

Browse files
authored
Guide > Composition API > Introduction の翻訳を追従 (#282)
* docs: clarify the usage of toRefs and toRef for optional props vuejs/docs@a502ebe#diff-3ace6f6da65a6723abafa4cd506303a9202b768e52434e78764dd1dae74db376 * Update composition-api-introduction.md vuejs/docs@e7c380d#diff-3ace6f6da65a6723abafa4cd506303a9202b768e52434e78764dd1dae74db376 * docs: use local copies of images rather than external URLs vuejs/docs@4b0baab#diff-3ace6f6da65a6723abafa4cd506303a9202b768e52434e78764dd1dae74db376 * fix: untranslated parts #199 close #199 * fix: translate 'composition api' * fix: missing anchor link * fix: easy to understand japanese
1 parent a3b89d5 commit 9eac4f1

File tree

2 files changed

+34
-19
lines changed

2 files changed

+34
-19
lines changed
115 KB
Loading

src/guide/composition-api-introduction.md

+34-19
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# はじめに
22

3-
## なぜコンポジション API なのか?
3+
## なぜ Composition API なのか?
44

55
::: tip Note
66
ドキュメントでここまで到達しているならば、[Vue の基本](introduction.md)[コンポーネントの作成](component-basics.md)の両方にすでに精通しているはずです。
@@ -18,7 +18,10 @@ Vue コンポーネントを作成するとその機能と結合されたイン
1818
export default {
1919
components: { RepositoriesFilters, RepositoriesSortBy, RepositoriesList },
2020
props: {
21-
user: { type: String }
21+
user: {
22+
type: String,
23+
required: true
24+
}
2225
},
2326
data () {
2427
return {
@@ -54,29 +57,29 @@ export default {
5457

5558
コンポーネントのオプション (`data`, `computed`, `methods`, `watch`) でまとめたロジックはたいていの場合は正しく動作します。しかし、コンポーネントがより大きくなれば、**論理的な関心事**のリストもまた大きくなります。これは、特に最初からコンポーネントを書いていない人々にとって、コンポーネントを読みづらく、理解しづらいものにするかもしれません。
5659

57-
![Vue オプション API: オプションの種類によってグループ分けされたコード](https://user-images.githubusercontent.com/499550/62783021-7ce24400-ba89-11e9-9dd3-36f4f6b1fae2.png)
60+
![Vue オプション API: オプションの種類によってグループ分けされたコード](/images/options-api.png)
5861

5962
**論理的な関心事** が色でグループ化されている大きなコンポーネントを示す例。
6063

6164
このような分離は、複雑なコンポーネントを理解してメンテナンスすることを難しくします。このオプションの分離は背景にある論理的な関心事をわかりづらくします。さらに、単一の論理的な関心事に取り組む場合、関連するコードのオプションブロックを何度も "ジャンプ" する必要があります。
6265

63-
同じ論理的な関心事に関連するコードを並べることができれば、より良くなるでしょう。そして、これはまさにコンポジション API が可能にします。
66+
同じ論理的な関心事に関連するコードを並べることができれば、より良くなるでしょう。そして、これはまさに Composition API が可能にします。
6467

65-
## コンポジション API の基本
68+
## Composition API の基本
6669

67-
これで**なぜこの方法**にたどり着くのかわかりました。コンポジション API の使用を開始するには、初めに実際に使用できる場所が必要です。Vue コンポーネントでは、この場所を `setup` と呼びます。
70+
これで**なぜこの方法**にたどり着くのかわかりました。 Composition API の使用を開始するには、初めに実際に使用できる場所が必要です。Vue コンポーネントでは、この場所を `setup` と呼びます。
6871

6972
### `setup` コンポーネントオプション
7073

7174
<VideoLesson href="https://www.vuemastery.com/courses/vue-3-essentials/setup-and-reactive-references" title="Vue Mastery で setup がどのように動作するのか学ぶ">Vue Mastery で setup に関する無料ビデオを視聴する</VideoLesson>
7275

73-
新しい `setup` コンポーネントオプションは、コンポーネントが作成される前に `props` が解決されると実行され、コンポジション API のエントリポイントとして機能します。
76+
新しい `setup` コンポーネントオプションは、コンポーネントが作成される前に `props` が解決されると実行され、 Composition API のエントリポイントとして機能します。
7477

7578
::: warning
7679
`setup` が実行されたときは、まだコンポーネントのインスタンスが作られないため、`setup` オプションの中では `this` を使用できません。これは `props` を除いて、コンポーネント内で宣言されているあらゆるプロパティ (**ローカルの state****computed プロパティ****methods**) にアクセスできないことを意味します。
7780
:::
7881

79-
`setup` オプションは `props`[後で](composition-api-setup.html#arguments)紹介する `context` を受け付ける関数であるべきです。さらに、`setup` から返される全てのものは、コンポーネントの残りの要素 (computed プロパティ、methods、ライフサイクルフックなど) およびコンポーネントの template に公開されます。
82+
`setup` オプションは `props`[後で](composition-api-setup.html#引数)紹介する `context` を受け付ける関数であるべきです。さらに、`setup` から返される全てのものは、コンポーネントの残りの要素 (computed プロパティ、methods、ライフサイクルフックなど) およびコンポーネントの template に公開されます。
8083

8184
`setup` をコンポーネントに追加しましょう:
8285

@@ -86,7 +89,10 @@ export default {
8689
export default {
8790
components: { RepositoriesFilters, RepositoriesSortBy, RepositoriesList },
8891
props: {
89-
user: { type: String }
92+
user: {
93+
type: String,
94+
required: true
95+
}
9096
},
9197
setup(props) {
9298
console.log(props) // { user: '' }
@@ -155,10 +161,10 @@ console.log(counter.value) // 1
155161

156162
![参照渡し vs 値渡し](https://blog.penjee.com/wp-content/uploads/2015/02/pass-by-reference-vs-pass-by-value-animation.gif)
157163

158-
任意の値の周りにラッパーオブジェクトがあると、途中でリアクティブでなくなることがなく、アプリ全体に安全に渡すことができます。
164+
どんな値でもラッパーオブジェクトを持つことで、途中でリアクティブでなくなることがなく、アプリ全体に安全に渡すことができます。
159165

160166
::: tip Note
161-
言い換えれば、`ref` は値への**リアクティブな参照**を作成します。 **参照**を操作するという概念はコンポジション API 全体で頻繁に使用されます。
167+
言い換えれば、`ref` は値への**リアクティブな参照**を作成します。 **参照**を操作するという概念は Composition API 全体で頻繁に使用されます。
162168
:::
163169

164170
例に戻って、リアクティブな `repositories` 変数を作成しましょう:
@@ -192,7 +198,10 @@ import { ref } from 'vue'
192198
export default {
193199
components: { RepositoriesFilters, RepositoriesSortBy, RepositoriesList },
194200
props: {
195-
user: { type: String }
201+
user: {
202+
type: String,
203+
required: true
204+
}
196205
},
197206
setup (props) {
198207
const repositories = ref([])
@@ -233,7 +242,7 @@ export default {
233242

234243
### ライフサイクルフックを `setup` の中に登録する
235244

236-
オプション API に比べてコンポジション API の機能を完全にするには、ライフサイクルフックを `setup` の中に登録する必要があります。これは Vue から提供されるいくつかの新しい関数のおかげで可能になりました。コンポジション API におけるライフサイクルフックはオプション API と同様の名称ですが、`on` というプレフィックスが付いています。例: `mounted``onMounted` のようになっています。
245+
オプション API に比べて Composition API の機能を完全にするには、ライフサイクルフックを `setup` の中に登録する必要があります。これは Vue から提供されるいくつかの新しい関数のおかげで可能になりました。 Composition API におけるライフサイクルフックはオプション API と同様の名称ですが、`on` というプレフィックスが付いています。例: `mounted``onMounted` のようになっています。
237246

238247
それらの関数はコンポーネントによってフックが呼び出されるときに実行されるコールバックを受け付けます。
239248

@@ -300,7 +309,7 @@ export default {
300309
}
301310
```
302311

303-
`watch` についての詳細は、[詳細ガイド]() を参照してください。
312+
`watch` についての詳細は、[詳細ガイド](reactivity-computed-watchers.md#watch) を参照してください。
304313

305314
**例に適用しましょう:**
306315

@@ -392,7 +401,7 @@ setup (props) {
392401
}
393402
```
394403

395-
他の**論理的な関心事**にも同じことができますが、既に疑問があるかもしれません。- _これはコードを `setup` オプションに移動させて肥大させるだけではありませんか?_ そのため他の責務に移る前に、まず上記のコードをスタンドアロンな**コンポジション関数**に抽出します。 `useUserRepositories` の作成から始めましょう:
404+
他の**論理的な関心事**にも同じことができますが、既に疑問があるかもしれません。- _これはコードを `setup` オプションに移動させて肥大させるだけではありませんか?_ そのため他の責務に移る前に、まず上記のコードをスタンドアロンな**Composition 関数**に抽出します。 `useUserRepositories` の作成から始めましょう:
396405

397406
```js
398407
// src/composables/useUserRepositories.js
@@ -416,7 +425,7 @@ export default function useUserRepositories(user) {
416425
}
417426
```
418427

419-
And then the searching functionality:
428+
それから検索機能も:
420429

421430
```js
422431
// src/composables/useRepositoryNameSearch.js
@@ -449,7 +458,10 @@ import { toRefs } from 'vue'
449458
export default {
450459
components: { RepositoriesFilters, RepositoriesSortBy, RepositoriesList },
451460
props: {
452-
user: { type: String }
461+
user: {
462+
type: String,
463+
required: true
464+
}
453465
},
454466
setup (props) {
455467
const { user } = toRefs(props)
@@ -495,7 +507,10 @@ import useRepositoryFilters from '@/composables/useRepositoryFilters'
495507
export default {
496508
components: { RepositoriesFilters, RepositoriesSortBy, RepositoriesList },
497509
props: {
498-
user: { type: String }
510+
user: {
511+
type: String,
512+
required: true
513+
}
499514
},
500515
setup(props) {
501516
const { user } = toRefs(props)
@@ -528,4 +543,4 @@ export default {
528543

529544
これで完了です!
530545

531-
コンポジション API の表面とできることについてほんの少し触れただけであることを覚えておいてください。より詳しく知りたい場合は、詳細ガイドを参照してください。
546+
Composition API の表面とできることについてほんの少し触れただけであることを覚えておいてください。より詳しく知りたい場合は、詳細ガイドを参照してください。

0 commit comments

Comments
 (0)