項目用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事件要阻止默認行為再執行。希望各位大神能幫忙解釋下為什么用.stop無法實現預期效果,而.prevent可以。
vue<router-link> 內嵌@click修飾符用stop還是prevent
MM們
2019-02-05 21:13:55