鍍金池/ 問答/HTML/ vue v-for渲染的子組件怎么注冊(cè)click事件?

vue v-for渲染的子組件怎么注冊(cè)click事件?

問題背景:

移動(dòng)端h5,父組件中引入子組件,現(xiàn)在需要用v-for來渲染子組件,點(diǎn)擊每個(gè)子組件跳到對(duì)應(yīng)的聯(lián)系人的聊天頁面里去。本來是通過router-link來做的,后面發(fā)現(xiàn)點(diǎn)擊了沒有效果以為哪里出問題了就換成@click來做。但是現(xiàn)在事件綁定不成功,定位問題應(yīng)該是單機(jī)事件沒有綁定到子組件上,應(yīng)該是異步或者dom渲染的生命周期的問題。因?yàn)楹竺嫖以趍ounted生命周期中通過this.$nextTick()函數(shù)手動(dòng)獲取子組件并綁定事件是成功的。
各位歌神幫看看這邊代碼怎么寫比較優(yōu)雅并符合套路,用router或者@click或者別的都可以,vue新人,多指教哈。
代碼如下:

<fb-contact
    :icon-src="msg.iconSrc"
    :msg-source="msg.msgSource"
    :msg-timestamp="msg.msgTimestamp"
    :sub-content="msg.msgContent"
    :msg-count="msg.msgCount"
    v-for="msg in msgs"
    :key="msg.msgTimestamp"
    @click="toTalk"
></fb-contact>
methods: {
    toTalk (event) {
        console.log(12345)
    }
}
回答
編輯回答
不歸路

@click.native
clipboard.png

2017年8月12日 01:28
編輯回答
笑忘初
<fb-contact
    :icon-src="msg.iconSrc"
    :msg-source="msg.msgSource"
    :msg-timestamp="msg.msgTimestamp"
    :sub-content="msg.msgContent"
    :msg-count="msg.msgCount"
    v-for="msg in msgs"
    :key="msg.msgTimestamp"
    @click.native="toTalk" <!-- @click添加.native修飾符 -->
></fb-contact>
2018年9月9日 12:08