vue「router-link」 內嵌@click修飾符用stop還是prevent

項目用vue搭建,通過vue-router路由,在一個導航條內

<router-link>
    ...
    <span @click.stop.prevent="navTo('...')">點我路由另一個地址</span>
    ...
</router-link>

實現目標:點<router-link>內的其他元素都能按照router配置路由,點擊<span>元素觸發click事件而不按照router路由。

實際現象:
我自己的理解:<router-link>會轉化成 a 標籤,那在內部的click事件要阻止向上冒泡應該用.stop修飾,但實際效果是用了stop頁面跳轉兩次,最終跳轉到<router-link>配置的地址。如果用.prevent則只觸發內部的click事件,而不會跳轉到<router-link>頁面,反向推導解釋:<router-link>內部所有子元素都屬於轉化後的a標籤的一部分,默認行爲跳轉到router配置的地址,新增click事件要阻止默認行爲再執行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章