微信小程序实现页面监听自定义组件的触发事件,供大家参考,具体内容如下
需求:在微信小程序开发过程中,页面通常会用到提示弹框。这时为了减少代码量及代码可拓展性,我们自定义一个提示组件是必不可少的了。那么问题来了,页面如何监听到组件的触发事件呢?
下面给大家详细讲解页面如何监听自定义组件的触发事件。
prompt组件:
1.首先搭建提示组件ui。由于后面各个页面都有可能用到该组件,所以我选择从页面传值过来显示提示语;
2.然后在prompt.js的点击事件里指定方法名称,该方法名称在后面的页面调用监听组件时需要用到;
// 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({ /** * 组件的属性列表 */ properties: { txttips: string,//声明属性类型 }, /** * 组件的初始数据 */ data: { }, /** * 组件的方法列表 */ methods: { //确认按钮 bindconfirm: function (e) { this.triggerevent('events'); }, // 截获竖向滑动--禁止底部页面滑动 catchtouchmove: function (res) { return true; }, } })
home页面:
1.首先需要在home.json的”usingcomponents”属性里引入prompt组件地址;
2.然后在home.wxml中引入<prompt />组件,且绑定的事件名称要跟组件中triggerevent方法指定的名称一致;
3.完成上面2个步骤后,我们就可以在js页面就可以监听操作组件的触发事件啦;
// home.json { "usingcomponents": {// 需引入自定义组件地址 "prompt": "/component/prompt/prompt" } }
// home.wxml <view class="main"> <button bindtap="bindejectcomponent">弹出自定义组件</button> <!-- 提示组件 --> <prompt txttips="{{txttips}}" bind:events="bindpromptconfirm" wx:if="{{isshowpromptcomponent}}"/> </view>
// home.js page({ /** 页面的初始数据 */ data: { isshowpromptcomponent: false,//是否显示提示控件组件 }, //点击弹出自定义组件 bindejectcomponent:function(e){ var that = this; that.setdata({ isshowpromptcomponent: true, txttips:"hi,我是自定义提示组件喔!", }) }, //提示组件确认事件 bindpromptconfirm: function (e) { var that = this; that.setdata({ isshowpromptcomponent: false, }) }, })
看到这里‘页面监听组件触发事件’功能就实现啦!!!最后上演示视频,看看效果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持www.887551.com。