回答編集履歴
7
イベントハンドリング
test
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
1:任意のイベントでメソッドを制御する(イベントハンドリングのインラインメソッドハンドラ)
|
4
4
|
2:子コンポーネントからの値を受け取る(カスタムイベント)
|
5
5
|
|
6
|
-
## 1:任意のイベントを制御するケース
|
6
|
+
## 1:任意のイベントを制御するケース(イベントハンドリング)
|
7
7
|
@click="startingCustomEvent()はv-on:click="startingCustomEvent()"の省略形で、同一コンポーネントでメソッドを呼び出しています。つまりclickイベントでstartingCustomEvent()というインラインメソッドを呼び出しています。そしてイベントハンドリングの場合はコールバック関数を用いるメソッドイベントハンドラ(v-on:click="startingCustomEventという記述形式で、メソッドの引数からイベントを受け取る)でもインラインメソッドイベントハンドラのいずれでも問題ありません。
|
8
8
|
|
9
9
|
## 2:子コンポーネントからの値を受け取るケース(カスタムイベント)
|
6
コールバック関数
test
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
2:子コンポーネントからの値を受け取る(カスタムイベント)
|
5
5
|
|
6
6
|
## 1:任意のイベントを制御するケース
|
7
|
-
@click="startingCustomEvent()はv-on:click="startingCustomEvent()"の省略形で、同一コンポーネントでメソッドを呼び出しています。つまりclickイベントでstartingCustomEvent()というインラインメソッドを呼び出しています。そしてイベントハンドリングの場合はメソッドイベントハンドラ(v-on:click="startingCustomEventという記述形式で、メソッドの引数からイベントを受け取る)でもインラインメソッドイベントハンドラのいずれでも問題ありません。
|
7
|
+
@click="startingCustomEvent()はv-on:click="startingCustomEvent()"の省略形で、同一コンポーネントでメソッドを呼び出しています。つまりclickイベントでstartingCustomEvent()というインラインメソッドを呼び出しています。そしてイベントハンドリングの場合はコールバック関数を用いるメソッドイベントハンドラ(v-on:click="startingCustomEventという記述形式で、メソッドの引数からイベントを受け取る)でもインラインメソッドイベントハンドラのいずれでも問題ありません。
|
8
8
|
|
9
9
|
## 2:子コンポーネントからの値を受け取るケース(カスタムイベント)
|
10
10
|
対する@clickedの**clickedは任意に定義されたemitメソッドで用いるためのプロパティ名で、予約されたイベントとは全く無関係**です。そしてVue上のカスタムイベントという仕様を用いて制御しますが、その場合はインラインメソッドハンドラは使用できません。
|
@@ -18,11 +18,11 @@
|
|
18
18
|
|
19
19
|
そして、emitされたメソッドを親コンポーネントで受け取る場合での親コンポーネント上の記述は
|
20
20
|
|
21
|
-
**v-on:emitメソッドでキーとなるプロパティ名=親コンポーネントで受け取りに用いるメソッド
|
21
|
+
**v-on:emitメソッドでキーとなるプロパティ名=親コンポーネントで受け取りに用いるメソッド(コールバック関数)**
|
22
22
|
|
23
|
-
となります。つまり、質問の条件の通り、子コンポーネントから受け取る場合はカスタムイベントを使うので、メソッドイベントハンドラでないといけないわけです。
|
23
|
+
となります。つまり、質問の条件の通り、子コンポーネントから受け取る場合はカスタムイベントを使うので、メソッドイベントハンドラ、つまり右側の式はコールバック関数でないといけないわけです。
|
24
24
|
|
25
|
-
な
|
25
|
+
ちなみに
|
26
26
|
|
27
27
|
emit('hoge', props.number)
|
28
28
|
|
5
Vueのマニュアルに沿って言葉を修正
test
CHANGED
@@ -1,15 +1,15 @@
|
|
1
|
-
v-on
|
1
|
+
v-onディレクティブはイベントを制御するディレクティブです。そして、この用例でv-onディレクティブは二通りに用いられている(厳密には別モノ)のでそれを混同しているのだと思います。
|
2
2
|
|
3
|
-
1:任意のイベントメソッドを制御する
|
3
|
+
1:任意のイベントでメソッドを制御する(イベントハンドリングのインラインメソッドハンドラ)
|
4
|
-
2:子コンポーネントからの値を受け取る
|
4
|
+
2:子コンポーネントからの値を受け取る(カスタムイベント)
|
5
5
|
|
6
|
-
## 1:任意のイベント
|
7
|
-
@click="startingCustomEvent()はv-on:click="startingCustomEvent()"の省略形で、同一コンポーネントでメソッドを呼び出しています。つまりclickイベントでstartingCustomEvent()を呼び出しています。
|
6
|
+
## 1:任意のイベントを制御するケース
|
7
|
+
@click="startingCustomEvent()はv-on:click="startingCustomEvent()"の省略形で、同一コンポーネントでメソッドを呼び出しています。つまりclickイベントでstartingCustomEvent()というインラインメソッドを呼び出しています。そしてイベントハンドリングの場合はメソッドイベントハンドラ(v-on:click="startingCustomEventという記述形式で、メソッドの引数からイベントを受け取る)でもインラインメソッドイベントハンドラのいずれでも問題ありません。
|
8
8
|
|
9
|
-
## 2:子コンポーネントからの値を受け取るケース
|
9
|
+
## 2:子コンポーネントからの値を受け取るケース(カスタムイベント)
|
10
|
-
対する@clickedの**clickedは任意に定義されたemitメソッドで用いるためのプロパティ名で、予約されたイベントとは全く無関係**です。
|
10
|
+
対する@clickedの**clickedは任意に定義されたemitメソッドで用いるためのプロパティ名で、予約されたイベントとは全く無関係**です。そしてVue上のカスタムイベントという仕様を用いて制御しますが、その場合はインラインメソッドハンドラは使用できません。
|
11
11
|
|
12
|
-
@clicked="addNumber"はv-on:clicked="addNumber"というv
|
12
|
+
@clicked="addNumber"はv-on:clicked="addNumber"というv-onディレクティブの省略形です。
|
13
13
|
defineEmitsは任意の子コンポーネントから親コンポーネントに値を送出するためのemitメソッドを生成しており、それを使用する場合、
|
14
14
|
|
15
15
|
**emit('emitメソッドでキーとなるプロパティ名',送出したい変数)**
|
@@ -18,9 +18,9 @@
|
|
18
18
|
|
19
19
|
そして、emitされたメソッドを親コンポーネントで受け取る場合での親コンポーネント上の記述は
|
20
20
|
|
21
|
-
**v-on:emitメソッドでキーとなるプロパティ名=親コンポーネントで受け取りに用いるメソッド
|
21
|
+
**v-on:emitメソッドでキーとなるプロパティ名=親コンポーネントで受け取りに用いるメソッドイベント(変数)**
|
22
22
|
|
23
|
-
となります。つまり、質問の条件の通り、子コンポーネントから受け取る場合はメソッド
|
23
|
+
となります。つまり、質問の条件の通り、子コンポーネントから受け取る場合はカスタムイベントを使うので、メソッドイベントハンドラでないといけないわけです。
|
24
24
|
|
25
25
|
なので
|
26
26
|
|
4
プロパティ名
test
CHANGED
@@ -7,7 +7,7 @@
|
|
7
7
|
@click="startingCustomEvent()はv-on:click="startingCustomEvent()"の省略形で、同一コンポーネントでメソッドを呼び出しています。つまりclickイベントでstartingCustomEvent()を呼び出しています。
|
8
8
|
|
9
9
|
## 2:子コンポーネントからの値を受け取るケース
|
10
|
-
対する@clicked
|
10
|
+
対する@clickedの**clickedは任意に定義されたemitメソッドで用いるためのプロパティ名で、予約されたイベントとは全く無関係**です。
|
11
11
|
|
12
12
|
@clicked="addNumber"はv-on:clicked="addNumber"というv:onディレクティブの省略形です。
|
13
13
|
defineEmitsは任意の子コンポーネントから親コンポーネントに値を送出するためのemitメソッドを生成しており、それを使用する場合、
|
3
送出のためのプロパティ名
test
CHANGED
@@ -7,18 +7,18 @@
|
|
7
7
|
@click="startingCustomEvent()はv-on:click="startingCustomEvent()"の省略形で、同一コンポーネントでメソッドを呼び出しています。つまりclickイベントでstartingCustomEvent()を呼び出しています。
|
8
8
|
|
9
9
|
## 2:子コンポーネントからの値を受け取るケース
|
10
|
-
対する@clickedは**任意に定義されたプロパティ名で、予約されたイベントとは無関係**です。
|
10
|
+
対する@clickedは**任意に定義されたemitメソッドで用いるためのプロパティ名で、予約されたイベントとは全く無関係**です。
|
11
11
|
|
12
12
|
@clicked="addNumber"はv-on:clicked="addNumber"というv:onディレクティブの省略形です。
|
13
13
|
defineEmitsは任意の子コンポーネントから親コンポーネントに値を送出するためのemitメソッドを生成しており、それを使用する場合、
|
14
14
|
|
15
|
-
**emit('
|
15
|
+
**emit('emitメソッドでキーとなるプロパティ名',送出したい変数)**
|
16
16
|
|
17
17
|
となります。
|
18
18
|
|
19
19
|
そして、emitされたメソッドを親コンポーネントで受け取る場合での親コンポーネント上の記述は
|
20
20
|
|
21
|
-
**v-on:emit
|
21
|
+
**v-on:emitメソッドでキーとなるプロパティ名=親コンポーネントで受け取りに用いるメソッドのオブジェクト(変数)**
|
22
22
|
|
23
23
|
となります。つまり、質問の条件の通り、子コンポーネントから受け取る場合はメソッドを制御するためのオブジェクト(変数)でないといけないわけです。
|
24
24
|
|
2
メソッドのオブジェクト
test
CHANGED
@@ -18,9 +18,9 @@
|
|
18
18
|
|
19
19
|
そして、emitされたメソッドを親コンポーネントで受け取る場合での親コンポーネント上の記述は
|
20
20
|
|
21
|
-
**v-on:emitする子コンポーネントのプロパティ名=親コンポーネントで受け取りに用いるオブジェクト**
|
21
|
+
**v-on:emitする子コンポーネントのプロパティ名=親コンポーネントで受け取りに用いるメソッドのオブジェクト(変数)**
|
22
22
|
|
23
|
-
となります。つまり、質問の条件の通り、子コンポーネントから受け取る場合は
|
23
|
+
となります。つまり、質問の条件の通り、子コンポーネントから受け取る場合はメソッドを制御するためのオブジェクト(変数)でないといけないわけです。
|
24
24
|
|
25
25
|
なので
|
26
26
|
|
1
イベントを削除
test
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
## 2:子コンポーネントからの値を受け取るケース
|
10
10
|
対する@clickedは**任意に定義されたプロパティ名で、予約されたイベントとは無関係**です。
|
11
11
|
|
12
|
-
@clicked="addNumber"はv-on:clicked="addNumber"というv:on
|
12
|
+
@clicked="addNumber"はv-on:clicked="addNumber"というv:onディレクティブの省略形です。
|
13
13
|
defineEmitsは任意の子コンポーネントから親コンポーネントに値を送出するためのemitメソッドを生成しており、それを使用する場合、
|
14
14
|
|
15
15
|
**emit('親コンポーネントに送出するためのプロパティ名',送出したい変数)**
|