this.triggerEvent()用法

在對組件進行封裝時 在當前頁面想要獲取組件中的某一狀態(tài),需要使用到this.triggerEvent(' ',{},{}),第一個參數(shù)是自定義事件名稱,這個名稱是在頁面調(diào)用組件時bind的名稱,第二個對象就可以將想要的屬性拿到,第三個參數(shù)文檔中有介紹,有機會再做補充。

  • 在這個demo中l(wèi)ike組件是我要封裝的組件,在classic.wxml中調(diào)用的:


    image.png
  • 組件like.vue的頁面是這樣寫的:
<view bind:tap="onLike" class="container">
  <image src="{{like?yesSrc:noSrc}}" />
  <text>{{count}}</text>
</view>
  • 組件的like.js中methods是這樣寫的:
methods: {
        onLike(event) {
            let like = this.properties.like;
            let count = this.properties.count;
            count = like ? count - 1 : count + 1;
            this.setData({
                like: !like,
                count
            })
            let behavior = this.properties.like ? "like" : "cancel";
            this.triggerEvent('like', {
                behavior
            }, {})
        }
    }
  • 那么在classic.wxml中調(diào)用組件:
  • 這里要注意bind:后面的like是this.triggerEvent()的第一個參數(shù),自定義事件名稱
<v-like bind:like="onLike" like="{{classicData.like_status}}" count="{{classicData.fav_nums}}"/>
  • classic.js中onlike就可以實現(xiàn)頁面對組件屬性的獲?。?/li>
 onLike: function(event) {
        console.log(event)
    }
image.png

event.detail.behavior就可以拿到是不是喜歡的屬性了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容