在開發(fā)過程中,我們有時候需要手動觸發(fā) DOM 的 click 事件,比如當(dāng)我們需要制作一些復(fù)雜的組件類庫時。
對于 Vue 來說,手動觸發(fā) DOM 的 click 事件并不難,我們可以借助 $refs 來實現(xiàn)。$refs 可以幫助我們獲取到 DOM 對象,再通過操作 DOM 來手動觸發(fā) click 事件。
<template> <button v-on:click="handleClick">點擊我</button> </template> <script> export default { methods: { handleClick() { console.log("clicked"); }, manualClick() { this.$refs.btn.click(); } } }; </script>
以上是一個簡單的例子,當(dāng)點擊按鈕時即可在 Console 中看到 "clicked" 這個 log。現(xiàn)在我們來手動觸發(fā)它:
<template> <button v-on:click="handleClick">點擊我</button> <button v-on:click="manualClick">手動點擊</button> </template> <script> export default { methods: { handleClick() { console.log("clicked"); }, manualClick() { this.$refs.btn.click(); } } }; </script>
此時點擊 "手動點擊" 按鈕,即可看到 Console 中輸出了 "clicked"。
需要注意的是,在使用 $refs 的時候,我們需要在 Dom 元素上綁定一個 ref 屬性,然后通過 this.$refs.xxx 這樣的形式來獲取它。
如果你想操作其他元素的 click 事件,可以通過類似以下這樣的代碼來實現(xiàn):
this.$refs.xxx.$emit('click')
以上代碼中,我們使用 $emit 來手動觸發(fā) click 事件。
通過以上代碼,你就可以在 Vue 中手動觸發(fā) click 事件了,如果你想了解更多關(guān)于 Vue 的知識,可以通過官方文檔或者一些中文學(xué)習(xí)資料來加深了解。
上一篇vue svg 動畫庫
下一篇vue 怎么注釋代碼