我們在前一章的最後面有提到了 v-on ,那這個是什麼呢?!
其實它就 Vue 的事件(event)處理,就像是 Javascript 裡的 onclick、onchange、oninput...等事件。
相信已經開始學 Vue 的各位應該對 Javascript 有一定的瞭解了,對這些事件應該不陌生。
好的!!那我們不囉唆就直接來看看怎麼運用~
就來做一個計數器好了,雖然老套但是拿來示範最好了哈哈哈!!!
我們就寫一個 button 並且綁上一個 v-on:click 事件,並且指定執行 data 裡的 count + 1
<body>
<div id="app">
<button v-on:click="count += 1">add</button>
<span>{{count}}</span>
</div>
</body>
<script>
const vm = new Vue({
el: '#app',
data: {
count: 0
}
})
</script>
結果就會是這樣:

是不是使用起來就跟 Javascript 原生的差不多呢~
另外 v-on 也能夠縮寫為 @,所以剛剛上面的 button 也能夠寫成
<button @click="count += 1">add</button>
我們來對前幾章的示範來做一點變化~
當我點擊按鈕的時候,皮卡丘的圖會變換:
<body>
<div id="app">
<button @click="count += 1">change img</button></br>
<img :src=`./皮卡丘${count%2}.jpg` alt="img">
</div>
</body>
<script>
const vm = new Vue({
el: '#app',
data: {
count: 0
}
})
</script>

當然其他的 on 事件也能夠使用,例如:
使用 onmouseover 事件來改變 div 的顏色。
<body>
<div id="app">
<div class="block" @mouseover="blockRed = !blockRed" :class="{blockRed: blockRed}"></div>
</div>
</body>
<script>
const vm = new Vue({
el: '#app',
data: {
blockRed: false
}
})
</script>
結果如下:

一般我們在 v-on 事件裡面會放的是一個 function 在 Vue 裡面會使用一個叫做 methods 的方法,在裡面宣告 function ,接下來會在下一章做介紹。
嗨,Andy老師
可以參考這系列的codepen或github嗎
我沒有留 code 耶XDD
都是直接打上去的