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

一文詳解Vue-組件自定義事件(綁定和解綁)

 更新時間:2023年05月05日 09:46:19   作者:小花皮豬  
這篇文章主要介紹了Vue-組件自定義事件的綁定和解綁,文中有詳細的圖文實例,對學習或工作有一定的參考價值,需要的小伙伴可以閱讀下

組件自定義事件(綁定)

像click,change這些都是js的內(nèi)置事件,我們可以直接使用,本次我們學習自己根據(jù)需求打造全新的事件,但是js內(nèi)置的是給html元素用的,本次的自定義事件是給組件用的

注意:組件上也可以綁定原生DOM事件,需要使用native修飾符,銷毀組件實例也會銷毀組件對應的自定義事件

下面通過案例說明

1 編寫案例

如圖,我有三個組件,分別是學生,學校和app,由app管理其他兩個組件,這時候想給學校組件一個按鈕,點擊的時候會把學校名稱交給app

2 props實現(xiàn)

通過父組件給子組件傳遞函數(shù)類型的props實現(xiàn):子給父傳遞數(shù)據(jù)

我們可以子組件使用props給父組件傳遞,所以首先在app里面定義函數(shù),然后通過props進行傳遞使用

3 自定義事件實現(xiàn)方式1

如果我還想繼續(xù)給student一個按鈕,點擊的時候把學生姓名給app組件呢?這次不用props了,使用自定義事件實現(xiàn)

通過父組件給子組件綁定自定義事件實現(xiàn):子給父傳遞數(shù)據(jù)

使用$emit觸發(fā)組件身上的自定義事件,參數(shù)是事件名稱

當然,使用@簡寫形式替代v-on也是可以的,我這里沒有簡寫,事件名稱和回調(diào)名稱可以相同的

也是可以完成的

4 自定義事件實現(xiàn)方式2

除了上述的方式,還有另外一種方式可以實現(xiàn),使用ref,寫一個加載鉤子函數(shù),使用$on

這種寫法雖然麻煩,需要寫鉤子函數(shù),但是它也更加的靈活

效果都是一樣的

如果驗證它更加的靈活呢?比如現(xiàn)在有這樣的一個需求,需要3秒后才能加載事件,這時候使用第一種寫法就寫不了,但是第二種寫法就可以

5 只能觸發(fā)一次事件

有的場景,我想要自定義事件觸發(fā)一次后就不再觸發(fā)了,這時候就不能使用??這個???了,應該使用on這個api了,應該使用once

如果不是這種寫法呢?也是一樣的道理,在事件名稱后.once即可

6 多個參數(shù)傳遞

自定義事件也是可以支持傳遞多個參數(shù)的,使用逗號拼接即可

但是一般多個參數(shù)不會這么寫,而是使用es6里面的...params接收,他會把多個參數(shù)拼接成一個數(shù)組

組件自定義事件(解綁)

上面介紹了綁定自定義事件,接下來就是對應的解綁自定義事件

1 解綁一個事件

使用$off解綁,參數(shù)就是事件名稱,這種寫法只支持解綁一個事件

那么多個該如何操作呢?

2 解綁多個事件

比如現(xiàn)在有兩個自定義事件

使用$off解綁,參數(shù)是一個數(shù)組,里面是參數(shù)名稱

3 解綁全部事件

還有一種更加暴力的寫法,使用off方法什么也不傳,這便是解綁全部事件

組件的自定義事件總結

  • 一種組件間通信的方式,適用于:子組件 ===> 父組件

  • 使用場景:A是父組件,B是子組件,B想給A傳數(shù)據(jù),那么就要在A中給B綁定自定義事件(事件的回調(diào)在A中)。

  • 綁定自定義事件:

  • 第一種方式,在父組件中:<Demo @atguigu="test"/><Demo v-on:atguigu="test"/>

  • 第二種方式,在父組件中:

<Demo ref="demo"/>

......

mounted(){

this.$refs.xxx.$on('atguigu',this.test)

}
  • 若想讓自定義事件只能觸發(fā)一次,可以使用once修飾符,或$once方法。

  • 觸發(fā)自定義事件:this.$emit('atguigu',數(shù)據(jù))

  • 解綁自定義事件this.$off('atguigu')

  • 組件上也可以綁定原生DOM事件,需要使用native修飾符。

  • 注意:通過this.$refs.xxx.$on('atguigu',回調(diào))綁定自定義事件時,回調(diào)要么配置在methods中,要么用箭頭函數(shù),否則this指向會出問題!

以上就是一文詳解Vue-組件自定義事件(綁定和解綁)的詳細內(nèi)容,更多關于Vue 組件自定義的資料請關注腳本之家其它相關文章!

相關文章

  • Vue 使用計時器實現(xiàn)跑馬燈效果的實例代碼

    Vue 使用計時器實現(xiàn)跑馬燈效果的實例代碼

    這篇文章主要介紹了Vue 使用計時器實現(xiàn)跑馬燈效果,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-07-07
  • vue項目打包發(fā)布后接口報405錯誤的解決

    vue項目打包發(fā)布后接口報405錯誤的解決

    這篇文章主要介紹了vue項目打包發(fā)布后接口報405錯誤的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • vue中props值的傳遞詳解

    vue中props值的傳遞詳解

    這篇文章主要介紹了vue中props值的傳遞,在vue中父組件要正向的向子組件傳遞數(shù)據(jù)或者參數(shù),子組件接收到后根據(jù)參數(shù)的不同來進行對應的渲染,這個正向的數(shù)據(jù)傳遞在vue組件中就是通過props來實現(xiàn)的,需要的朋友可以參考下
    2009-05-05
  • Vue.js如何實現(xiàn)路由懶加載淺析

    Vue.js如何實現(xiàn)路由懶加載淺析

    Vue是可以自定義指令的,最近學習過程中遇見了一個需要懶加載的功能,發(fā)現(xiàn)網(wǎng)上這方面的資料較少,所以下面這篇文章主要給大家介紹了關于Vue.js如何實現(xiàn)路由懶加載的相關資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-08-08
  • Vue多選列表組件深入詳解

    Vue多選列表組件深入詳解

    這篇文章主要介紹了Vue多選列表組件深入詳解,這個是vue的基本組件,有需要的同學可以研究下
    2021-03-03
  • vue項目中swiper輪播active圖片實現(xiàn)居中并放大

    vue項目中swiper輪播active圖片實現(xiàn)居中并放大

    這篇文章主要介紹了vue項目中swiper輪播active圖片實現(xiàn)居中并放大方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Vue混入與插件的使用介紹

    Vue混入與插件的使用介紹

    這篇文章主要介紹了Vue混入與插件的使用,mixins(混入),官方的描述是一種分發(fā) Vue 組件中可復用功能的非常靈活的方式,mixins是一個js對象,它可以包含我們組件中script項中的任意功能選項,如data、components、methods 、created、computed等等
    2022-09-09
  • Vuex提升學習篇

    Vuex提升學習篇

    本篇文章主要介紹了Vuex提升學習篇,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • Vue插槽slot詳細介紹(對比版本變化,避免踩坑)

    Vue插槽slot詳細介紹(對比版本變化,避免踩坑)

    Vue中的Slot對于編寫可復用可擴展的組件是再合適不過了,下面這篇文章主要給大家介紹了關于Vue插槽slot詳細介紹的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • npm如何更新VUE package.json文件中依賴的包版本

    npm如何更新VUE package.json文件中依賴的包版本

    這篇文章主要介紹了npm如何更新VUE package.json文件中依賴的包版本問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06

最新評論

鲜城| 鹤岗市| 夏邑县| 方正县| 平潭县| 库尔勒市| 克东县| 台东县| 天柱县| 上思县| 宾川县| 桑植县| 内黄县| 化德县| 施甸县| 睢宁县| 阜新| 蛟河市| 余江县| 闵行区| 浏阳市| 彭水| 望江县| 克拉玛依市| 长宁区| 和林格尔县| 宁武县| 延庆县| 克什克腾旗| 宜章县| 永康市| 香港 | 洛宁县| 浠水县| 邹城市| 西平县| 桃园市| 阆中市| 襄樊市| 临潭县| 华亭县|