router-link 綁定事件不生效
阿新 • • 發佈:2018-03-30
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 綁定事件不生效