Vue元件溝通-子傳父($emit)

常常忘記子傳父($emit)的寫法,這裡筆記一下
子件的事件被觸發的時候要做事
把事件綁在template上@click-child

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/* 子元件 */
<div id="child">
<span>子元件</span>
<button @click="clickButton">Click!</button>
</div>

...
methods: {
clickButton(){
this.$emit('click-child')
}
}

/* 父元件 */
<div id="parent">
<span>父元件</span>
<child @click-child="sayHi"></child>
</div>

...
methods: {
sayHi(){
alert('Hi~~')
}
}

...

$emit用 kebab-case 命名法比較好,原因是vue會把大小寫全部轉成小寫,可能會造成變數名稱有問題