Skip to content

Commit cbb2116

Browse files
oohirakazupon
authored andcommitted
[Doc]: Update docs to avoid misconceptions around emitting events #1423 (#1445)
* cherry-pick & translate vuejs/v2.vuejs.org@d58df8c
1 parent c9a5261 commit cbb2116

File tree

2 files changed

+15
-13
lines changed

2 files changed

+15
-13
lines changed

src/v2/guide/components.md

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: コンポーネントの基本
3-
updated: 2018-04-15
3+
updated: 2019-02-01
44
type: guide
55
order: 11
66
---
@@ -269,7 +269,7 @@ Vue.component('blog-post', {
269269

270270
これで、新しいプロパティが `post` オブジェクトに追加される際にはいつでも、`<blog-post>` 内で自動的に利用可能になるのです。
271271

272-
## イベントとメッセージを親コンポーネントに送出する
272+
## 子コンポーネントのイベントを購読する
273273

274274
`<blog-post>` コンポーネントを開発する際、親コンポーネントとやり取りする機能が必要になるかもしれません。例えば、ブログの投稿のテキストを拡大するためのアクセシビリティ機能を追加し、他のページのデフォルトのサイズにすることができます。
275275

@@ -324,15 +324,7 @@ Vue.component('blog-post', {
324324
</button>
325325
```
326326

327-
ボタンをクリックすると、すべての投稿のテキストを拡大する必要があることを親コンポーネントに伝える必要があります。幸いにも、Vue インスタンスはこの問題を解決するカスタムイベントシステムを提供しています。親コンポーネントにイベントを送出するには、ビルトインの[**`$emit`** メソッド](../api/#インスタンスメソッド-イベント)を呼び出して、イベントの名前を渡します:
328-
329-
```html
330-
<button v-on:click="$emit('enlarge-text')">
331-
Enlarge text
332-
</button>
333-
```
334-
335-
その後、ブログ投稿コンポーネントでは、ネイティブの DOM イベントと同じように、このイベントを `v-on` でリッスンすることができます:
327+
ボタンをクリックすると、すべての投稿のテキストを拡大する必要があることを親コンポーネントに伝える必要があります。幸いにも、Vue インスタンスはこの問題を解決するカスタムイベントシステムを提供しています。親コンポーネントは、ネイティブの DOM イベントと同じように、`v-on` を使って子コンポーネントで起きた任意のイベントを購読することができます:
336328

337329
```html
338330
<blog-post
@@ -341,6 +333,16 @@ Vue.component('blog-post', {
341333
></blog-post>
342334
```
343335

336+
そして、子コンポーネントでは、ビルトインの [**`$emit`** メソッド](../api/#インスタンスメソッド-イベント) にイベントの名前を渡して呼び出すことで、イベントを送出することができます:
337+
338+
```html
339+
<button v-on:click="$emit('enlarge-text')">
340+
Enlarge text
341+
</button>
342+
```
343+
344+
親コンポーネントは、`v-on:enlarge-text="postFontSize += 0.1"` リスナのおかげで、このイベントを受け取って `postFontSize` の値を更新することができます。
345+
344346
{% raw %}
345347
<div id="blog-posts-events-demo" class="demo">
346348
<div :style="{ fontSize: postFontSize + 'em' }">

themes/vue/source/js/common.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@
4646
'Replacing-Merging-with-Existing-Attributes':
4747
'/v2/guide/components-props.html#Replacing-Merging-with-Existing-Attributes',
4848
'Custom-Events':
49-
'/v2/guide/components.html#Sending-Messages-to-Parents-with-Events',
49+
'/v2/guide/components.html#Listening-to-Child-Components-Events',
5050
'Using-v-on-with-Custom-Events':
51-
'/v2/guide/components.html#Sending-Messages-to-Parents-with-Events',
51+
'/v2/guide/components.html#Listening-to-Child-Components-Events',
5252
'Binding-Native-Events-to-Components':
5353
'/v2/guide/components-custom-events.html#Binding-Native-Events-to-Components',
5454
'sync-Modifier':

0 commit comments

Comments
 (0)