1. 程式人生 > >router-link 綁定事件不生效

router-link 綁定事件不生效

method nbsp 執行 link router 封裝 自定義 名稱 scrip

在vue中綁定事件是一下這種方法:

v-on:click=‘函數名稱‘;

@click = ‘函數名稱‘;

這兩種寫法都是正常。

但是我們使用了 vue-router 路由時會使用 <router-link> 標簽來代替 a 標簽跳轉。我們在 vue-router 標簽綁定 @click 事件 。

 <router-link to="/date" @click="nav_click">最新</router-link>

methods: {
 nav_click: function() {
       console.log(1)
 }
}

卻發現函數並沒有執行。這是怎麽回事。。。  

加 .native 修飾符就可以執行事件了。

 <router-link to="/date" @click.native="nav_click">最新</router-link>

methods: {
 nav_click: function() {
       console.log(1)
 }
}  

解釋:

1: 因為它是自定義標簽,根本就沒有事件和方法,所以不觸發,加個native 就是告訴vue 這個標簽現在有主了 它是H5標簽 可以加事件了。

2:父組件要想在子組件監聽自己的click事件就得加native,router-link是標簽啊。哪裏有父組件????

群裏大佬一句說明了原因 router-link 其實就是一個封裝好的 .vue 組件,所以需要 加.native修飾符才能綁定事件

router-link 綁定事件不生效