項目用vue搭建,通過vue-router路由,在一個導(dǎo)航條內(nèi)<router-link> ... <span @click.stop.prevent="navTo('...')">點我路由另一個地址</span> ...</router-link>實現(xiàn)目標(biāo):點<router-link>內(nèi)的其他元素都能按照router配置路由,點擊<span>元素觸發(fā)click事件而不按照router路由。實際現(xiàn)象:我自己的理解:<router-link>會轉(zhuǎn)化成 a 標(biāo)簽,那在內(nèi)部的click事件要阻止向上冒泡應(yīng)該用.stop修飾,但實際效果是用了stop頁面跳轉(zhuǎn)兩次,最終跳轉(zhuǎn)到<router-link>配置的地址。如果用.prevent則只觸發(fā)內(nèi)部的click事件,而不會跳轉(zhuǎn)到<router-link>頁面,反向推導(dǎo)解釋:<router-link>內(nèi)部所有子元素都屬于轉(zhuǎn)化后的a標(biāo)簽的一部分,默認(rèn)行為跳轉(zhuǎn)到router配置的地址,新增click事件要阻止默認(rèn)行為再執(zhí)行。希望各位大神能幫忙解釋下為什么用.stop無法實現(xiàn)預(yù)期效果,而.prevent可以。
vue<router-link> 內(nèi)嵌@click修飾符用stop還是prevent
MM們
2019-02-05 21:13:55