微信小程序 實現頁面監聽自定義組件的(de)觸發事件 - 新聞資訊 - 雲南小程序開發|雲南軟件開發|雲南網站建設-昆明融晨信息技術有限公司

159-8711-8523

雲南網建設/小程序開發/軟件開發

知識

不(bù)管是(shì)網站,軟件還是(shì)小程序,都要(yào / yāo)直接或間接能爲(wéi / wèi)您産生價值,我們在(zài)追求其視覺表現的(de)同時(shí),更側重于(yú)功能的(de)便捷,營銷的(de)便利,運營的(de)高效,讓網站成爲(wéi / wèi)營銷工具,讓軟件能切實提升企業内部管理水平和(hé / huò)效率。優秀的(de)程序爲(wéi / wèi)後期升級提供便捷的(de)支持!

您當前位置>首頁 » 新聞資訊 » 小程序相關 >

微信小程序 實現頁面監聽自定義組件的(de)觸發事件

發表時(shí)間:2021-1-5

發布人(rén):融晨科技

浏覽次數:92

需求:在(zài)微信小程序開發過程中,頁面通常會用到(dào)提示彈框。這(zhè)時(shí)爲(wéi / wèi)了(le/liǎo)減少代碼量及代碼可拓展性,我們自定義一個(gè)提示組件是(shì)必不(bù)可少的(de)了(le/liǎo)。那麽問題來(lái)了(le/liǎo),頁面如何監聽到(dào)組件的(de)觸發事件呢?

下面給大(dà)家詳細講解頁面如何監聽自定義組件的(de)觸發事件。

prompt組件

  1. 首先搭建提示組件ui。由于(yú)後面各個(gè)頁面都有可能用到(dào)該組件,所以(yǐ)我選擇從頁面傳值過來(lái)顯示提示語;
  2. 然後在(zài)prompt.js的(de)點擊事件裏指定方法名稱,該方法名稱在(zài)後面的(de)頁面調用監聽組件時(shí)需要(yào / yāo)用到(dào);
// prompt.wxml
<view class="main" catchtouchmove="catchTouchMove">
	<view class="main-mask"></view>
	<view class="main-content">
		<view class="content-title">提示</view>
		<view class="content-text">{{txtTips}}</view>
		<button class="btn-confirm" bindtap="bindConfirm">確定</button>
	</view>
</view>
// prompt.js
Component({
  /**
   * 組件的(de)屬性列表
   */
  properties: {
    txtTips: String,//聲明屬性類型
  },

  /**
   * 組件的(de)初始數據
   */
  data: {

  },

  /**
   * 組件的(de)方法列表
   */
  methods: {
    //确認按鈕
    bindConfirm: function (e) {
      this.triggerEvent('events');
    },

    // 截獲豎向滑動--禁止底部頁面滑動
    catchTouchMove: function (res) {
      return true;
    },
  }
})

home頁面:

  1. 首先需要(yào / yāo)在(zài)home.json的(de)"usingComponents"屬性裏引入prompt組件地(dì / de)址;
  2. 然後在(zài)home.wxml中引入<prompt />組件,且綁定的(de)事件名稱要(yào / yāo)跟組件中triggerEvent方法指定的(de)名稱一緻;
  3. 完成上(shàng)面2個(gè)步驟後,我們就(jiù)可以(yǐ)在(zài)js頁面就(jiù)可以(yǐ)監聽操作組件的(de)觸發事件啦;
// home.json
{
  "usingComponents": {// 需引入自定義組件地(dì / de)址
    "prompt": "/component/prompt/prompt"
  }
}
// home.wxml
<view class="main">
  <button bindtap="bindEjectComponent">彈出(chū)自定義組件</button>
  <!-- 提示組件 -->
	<prompt txtTips="{{txtTips}}" bind:events="bindPromptConfirm" wx:if="{{isShowPromptComponent}}"/>
</view>
// home.js
Page({
  /**
 頁面的(de)初始數據
   */
  data: {
    isShowPromptComponent: false,//是(shì)否顯示提示控件組件
  },

  //點擊彈出(chū)自定義組件
  bindEjectComponent:function(e){
    var that = this;
    that.setData({
      isShowPromptComponent: true,
      txtTips:"Hi,我是(shì)自定義提示組件喔!",
    })
  },

  //提示組件确認事件
  bindPromptConfirm: function (e) {
    var that = this;
    that.setData({
      isShowPromptComponent: false,
    })
  },
})

看到(dào)這(zhè)裏‘頁面監聽組件觸發事件’功能就(jiù)實現啦!!!最後上(shàng)演示視頻,看看效果~

在(zài)這(zhè)裏插入圖片描述

相關案例查看更多