w3HexSchool
Vue
Javascript
在 Vue Instance 中的選項物件屬性中,可設定 methods
這個屬性用來定義方法,執行一些動作。
methods
屬性中的每個 key 是一個方法的名稱,而 value 就是方法的函數。
我們常使用指令 v-on
來綁定 HTML DOM 元素的事件監聽器,以觸發要執行的方法。
範例:
方法中的 this
會指向 Vue Instance,所以不能使用會將 this
指向上層內容的箭頭函式 arrow function 來定義 methods
@
.stop
: 呼叫 event.stopPropagation(),停止觸發上層 DOM 元素事件.prevent
: 呼叫 event.preventDefault(),避免瀏覽器預設行為.capture
: 不管觸發事件的目標是否是下層, 設定 capture
的事件一定會先觸發.self
: 僅觸發自己範圍的事件,不包含子層.{keyCode | keyAlias}
: 只在按下鍵盤任一鍵值才會觸發事件.native
: 監聽元件根元素的原生事件.once
: 此事件只觸發一次.left
: 只在點擊滑鼠左鍵才會觸發事件.right
: 只在點擊滑鼠右鍵才會觸發事件.middle
: 只在點擊滑鼠中鍵才會觸發事件.passive
: 以 { passive : true } 的模式添加事件監聽器,無視 prevent 功能關於修飾符的詳細用法,會在之後的篇章有完整介紹。
接下來針對 v-on
的表達方式用法做介紹:
當使用事件名稱綁定時,方法中的第一個參數會是原生的 DOM 事件物件,所以可以使用這個物件來操作叫用此事件的元素
方法內可以傳入參數,而當需要原生的 DOM 事件物件時,可以用 $event
變數當作參數傳入方法中使用。
物件的設定方式不能使用縮寫 @ 和任何的修飾符
在沒有 @submit.prevent
的情況下,頁面會閃一下,這時頁面已送出表單並重新載入了,而加上 @submit.prevent
後畫面不會重新載入