在Vue中,我們可以通過事件捕獲來響應DOM事件并改變組件狀態。
Vue中的事件捕獲有兩種方式:事件修飾符和事件綁定。事件修飾符是基于DOM事件的修飾符,例如阻止默認事件、阻止傳播等,而事件綁定是將指定事件與組件中的methods方法或者lambda表達式綁定。
// 事件修飾符示例 <button v-on:click.prevent="onClick">點擊不會跳轉</button> // 事件綁定示例 <button v-on:click="onClick">點擊將會調用onClick方法</button>
除此之外,Vue中還提供了一種特殊的事件捕獲方式:.sync修飾符。通過此修飾符可以實現雙向的數據綁定,當組件狀態改變時,DOM也會隨之改變,反之同理。
// 組件 <template> <input :value="message" v-on:input="$emit('update:message', $event.target.value)"> </template> // 使用組件 <div> <my-component :message.sync="message"></my-component> </div>
在上面的例子中,當輸入框值改變時,.sync修飾符將會調用update:message事件,改變組件的message狀態,進而影響DOM中使用message狀態的內容。
事件捕獲是Vue中一個核心的特性之一,只要掌握了事件捕獲的基礎知識,就能在組件中輕松地響應DOM事件,并且通過各種方式改變組件狀態。