vue如何給自定義的組件綁定點(diǎn)擊事件
給自定義的組件綁定點(diǎn)擊事件
在做項(xiàng)目中我們往往會(huì)封裝許多的組件,來減少代碼的重復(fù)性,提高代碼的可利用性,有時(shí)候也會(huì)給組件綁定事件,但是經(jīng)常會(huì)失效。
先給cardinfo這個(gè)組件綁定一個(gè)點(diǎn)擊事件
? ? ?<cardinfo ? ? ? ? :content="content" ? ? ? ? :from="from" ? ? ? ? :ProPortrait="ProPortrait" ? ? ? />
一般都是這樣給點(diǎn)擊事件,可是有時(shí)候這個(gè)事件是沒用的,因?yàn)檫@個(gè)事件是引用組件頁面的事件,而不是組件本身的事件,所以組件內(nèi)不能識(shí)別這個(gè)事件的來源。
? ? ?<cardinfo ? ? ? ?@click="goodclick" ? ? ? ? :content="content" ? ? ? ? :from="from" ? ? ? ? :ProPortrait="ProPortrait" ? ? ? />
在@click后面加native表示的是當(dāng)前頁面的事件
? <cardinfo ? ? ? ? @click.native="goodclick" ? ? ? ? :content="content" ? ? ? ? :from="from" ? ? ? ? :ProPortrait="ProPortrait" ? ? ? />
給自定義組件添加單擊事件
自己定義了一個(gè)按鈕按組件
<template> ? <div> ? ? ?<div class="endBtn"> ? ? ? ?<van-button type="danger" block color="linear-gradient( to left ,#F24B0B, #FF4A44 )">{{btnMsg}}</van-button> ? ? </div> ? </div> </template>
<script> export default { ? name: 'UiEndbutton', ? props:["btnMsg"], ? data() { ? ? return { ? ? ?? ? ? }; ? }, ? mounted() { ? ?? ? }, ? methods: { ? ?? ? }, }; </script>
<style lang="stylus" scoped> ? ?.endBtn ? ? ? width: 345px ? ? ? height: 44px ? ? ? border-radius: 4px ? ? ? background: radial-gradient(#F24B0B ?100%,#FF4A44 ? 100%); ? ? ? margin-top: 15px ? ? ? margin-left: 15px </style>
在其他的頁面引用這個(gè)組件
引入
import EndButton from '@/components/EndButton.vue'; export default { ? name: 'UiEndyuyuetransfer', ? ?components:{ ? ? ?PageTop, ? ? ? YuyueDetailItem, ? ? ? EndButton, ? ?}, ? ?methods:{ ? ?toEndYuyueTransferResult(){ ? ?this.$router.push({name:"EndYuyueTransferResult"}) ? ?} ? ?} }
在頁面中
<end-button btnMsg="終止" @click="toEndYuyueTransferResult"></end-button>
點(diǎn)擊按鈕你會(huì)發(fā)現(xiàn),方法沒有被觸發(fā)。
給vue組件綁定事件時(shí)候,必須加上native ,否則會(huì)認(rèn)為監(jiān)聽的是來自Item組件自定義的事件。
<end-button btnMsg="終止" @click.native="toEndYuyueTransferResult"></end-button>
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于SpringBoot與Vue交互跨域問題解決方案
最近在利用springboot+vue整合開發(fā)一個(gè)前后端分離的個(gè)人博客網(wǎng)站,所以這一篇總結(jié)一下在開發(fā)中遇到的一個(gè)問題,關(guān)于解決在使用vue和springboot在開發(fā)前后端分離的項(xiàng)目時(shí),如何解決跨域問題。在這里分別分享兩種方法,分別在前端vue中解決和在后臺(tái)springboot中解決。2021-10-10Vue3+vueuse實(shí)現(xiàn)放大鏡示例詳解
這篇文章主要為大家介紹了Vue3+vueuse實(shí)現(xiàn)放大鏡示例過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07vue+axios實(shí)現(xiàn)post文件下載
這篇文章主要為大家詳細(xì)介紹了vue+axios實(shí)現(xiàn)post文件下載,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-09-09Node.js使用orm2進(jìn)行update操作時(shí)關(guān)聯(lián)字段無法修改的解決方法
這篇文章主要給大家介紹了Node.js使用orm2進(jìn)行update操作時(shí)關(guān)聯(lián)字段無法修改的解決方法,文中給出了詳細(xì)的示例代碼供大家參考學(xué)習(xí),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。2017-06-06基于Vue3實(shí)現(xiàn)掃碼槍掃碼并生成二維碼實(shí)例代碼
vue3生成二維碼的方式有很多種,下面這篇文章主要給大家介紹了關(guān)于如何基于Vue3實(shí)現(xiàn)掃碼槍掃碼并生成二維碼的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06詳解element-ui動(dòng)態(tài)限定的日期范圍選擇器代碼片段
這篇文章主要介紹了element-ui動(dòng)態(tài)限定的日期范圍選擇器代碼片段,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07