最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue自定義組件如何添加使用原生事件

 更新時(shí)間:2022年04月21日 11:23:33   作者:Jsxj不想奮斗  
這篇文章主要介紹了vue自定義組件如何添加使用原生事件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

自定義組件如何添加使用原生事件

自定義組件(Components)是vue的重要知識(shí)塊之一,使用中不少人會(huì)發(fā)現(xiàn)一個(gè)問(wèn)題:為什么我在組件里綁定click事件不起作用?這里先看看原因吧。

在自定義組件中直接綁定原生事件vue可是"不待見(jiàn)"的,它會(huì)認(rèn)為你沒(méi)有定義這個(gè)事件,所以沒(méi)有任何反應(yīng)。

哪些是原生事件?

例如click單擊、mouseover鼠標(biāo)移入、mouseout鼠標(biāo)移出、keyup鍵盤(pán)按下抬起、keydown鍵盤(pán)按下…等等一系列由官方提供的事件都是原生事件。那么咋辦?

. $emit()傳遞

<body>
? ?<div id="app">
? ? ? ?<Jsxj :jsxj="message" @click="JsxjChange"></Jsxj>
? ?</div>
</body>
<script>
? ?var vm = new Vue({
? ? ? ?el:"#app",
? ? ? ?data:{
? ? ? ? ? ?message:"Hello World"
? ? ? ?},
? ? ? ?components:{
? ? ? ? ? ?Jsxj:{
? ? ? ? ? ? ? ?props:['jsxj'],
? ? ? ? ? ? ? ?template:`<p @click="pChange">{{jsxj}}</p>`,
? ? ? ? ? ? ? ?methods: {
? ? ? ? ? ? ? ? ? ?pChange(){
? ? ? ? ? ? ? ? ? ? ? ?this.$emit("click")
? ? ? ? ? ? ? ? ? ?}
? ? ? ? ? ? ? ?},
? ? ? ? ? ?}
? ? ? ?},
? ? ? ?methods: {
? ? ? ? ? ?JsxjChange(){
? ? ? ? ? ? ? ?this.message="Hi, Jsxj"
? ? ? ? ? ?}
? ? ? ?},
? ?})
</script>

第一種方法是通過(guò)$emit()傳遞事件。如代碼:我們?cè)谧远x組件Jsxj中設(shè)置模板,在模板中<p>原生元素上觸發(fā)原生click事件,調(diào)用函數(shù)pChange(),函數(shù)用$emit()向上傳遞自定義事件click,父組件Jsxj接收到這個(gè)事件,于是便可以正常觸發(fā)click。

. native屬性

<body>
? ?<div id="app">
? ? ? ?<Jsxj :jsxj="message" @click.native="JsxjChange"></Jsxj>
? ?</div>
</body>
<script>
? ?var vm = new Vue({
? ? ? ?el:"#app",
? ? ? ?data:{
? ? ? ? ? ?message:"Hello World"
? ? ? ?},
? ? ? ?components:{
? ? ? ? ? ?Jsxj:{
? ? ? ? ? ? ? ?props:['jsxj'],
? ? ? ? ? ? ? ?template:`<p>{{jsxj}}</p>` ?
? ? ? ? ? ?}
? ? ? ?},
? ? ? ?methods: {
? ? ? ? ? ?JsxjChange(){
? ? ? ? ? ? ? ?this.message="Hi, Jsxj"
? ? ? ? ? ?}
? ? ? ?},
? ?})
</script>

第二種方法相對(duì)簡(jiǎn)單。

代碼大同小異,不過(guò)我們不再用$emit()從子向父?jìng)鬟f自定義事件,太麻煩了,而是用native屬性幫忙@click.native="JsxjChange",這樣組件就會(huì)知道這是原生事件click,調(diào)用相應(yīng)的函數(shù)。 

vue使用原生事件

在項(xiàng)目中用到element ui 這個(gè)ui框架,有些組件沒(méi)有封裝的事件,例如click事件 ,我在使用時(shí)感覺(jué)不起作用,后來(lái)查看vue官方文檔,發(fā)現(xiàn)有些原生事件是不提供,還有我們自定義的組件也是不能直接使用click事件的 ,需要在click事件后寫(xiě)上.native才能生效

即 例如:

<el-card @click.native = "enter"></el-card>

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

伊宁市| 宁化县| 高淳县| 山东| 柳江县| 涿州市| 陆良县| 辰溪县| 鹤岗市| 平南县| 屏边| 德惠市| 钦州市| SHOW| 突泉县| 平顶山市| 广宗县| 南通市| 英山县| 开远市| 太谷县| 平陆县| 若羌县| 岗巴县| 县级市| 玛纳斯县| 临海市| 德清县| 兴安盟| 三原县| 剑河县| 年辖:市辖区| 乳山市| 丰镇市| 宁南县| 武宁县| 福清市| 滨海县| 西乌珠穆沁旗| 宝坻区| 澄江县|