在上一章节中我是给大家介绍了一下微信小程序的自定义组件,这一章我要说说小程序的另一个强大功能--自定义事
什么是自定义事件呢,你可以简单的理解为:在触发子组件的一些事件的时候,同时也能触发父组件对应的事件并对父组件中的某些数据进行修改的事件就是自定义事件.
有翻阅学习过小程序官方给出的自定义组件教程的小伙们一定会有和我一样想爆粗口的冲动...
因为上面说的真的有点乱...
不过没事,今天在这里博主会详细的讲解讲解微信小程序的自定义事件.
首先,我还是会以案例的形式向大家讲解(这样也能方便大家更好的理解)
简单介绍一下案例项目的内容(以上一章自定义组件的案例为基础)
项目名称:component
自定义子组件cpt
父组件: logs
在子组件 cpt
中有一个按钮,按钮上显示的是当前这按钮组件存储的数值 counter
.
父组件 logs
引用三个 cpt
子组件,在父组件有它自己的先进个变量 total
.
每点击一次不同的按钮都让按钮上的数值不同大小的增加,
同时 total
变量记录的是三个按钮的数值总和,如图:
cpt.wxml
<!-- 这是自定义组件的内部WXML结构 --> <view class="inner"> <button bindtap="_incrementCounter">{{counter}}</button> </view>
子组件cpt中有一个按钮,按钮添加点击事件 _incrementCounter
,同时按钮内容显示的是其数值 counter
cpt.js
Component({ properties: { // 这里定义了num属性,属性值可以在组件使用时指定 num: { // num定义的就是点击每个按钮分别增加的数值,可以在调用组件的时候进行更改 type: Number, value: 1 } }, data: { // 这里是一些组件内部数据 counter: 0 // counter定义的是每个按钮上的数值 }, methods: { // 这里是一个自定义方法,每次点击按钮增加对应的数值 _incrementCounter (e) { let num = this.data.num this.setData({ counter: this.data.counter + num }) // 微信小程序中是通过triggerEvent来给父组件传递信息的 this.triggerEvent('increment', {num: num}) // 将num通过参数的形式传递给父组件 } } })
子组件编写完之后,就可以在父组件logs中引用了,并且给它设定自定义事件
(别忘了在父组件的.json文件中进行引用哟)
logs.json
{ "navigationBarTitleText": "查看启动日志", "usingComponents": { "component-tag-name": "../components/cpt/cpt" } }
logs.wxml
<!--logs.wxml--> <view class="container log-list"> <!-- 以下是对一个自定义组件的引用 --> 三个按钮总和: {{total}} <component-tag-name bindincrement="incrementTotal" num="2"></component-tag-name> <component-tag-name bindincrement="incrementTotal" num="3"></component-tag-name> <component-tag-name bindincrement="incrementTotal" num="5"></component-tag-name> </view>
这里有一个坑要重点提一下,在官方给出的在父组件中调用子组件时,给其添加绑定事件使用的是 bind:increment
的形式,但是亲试之后,还是得用 bindincrement
的这种写法才有用.这里的 increment
就是你在定义子组件时通过 triggerEvent
传递过来的事件名.
logs.js
Page({ data: { logs: [], total: 0, // 父组件中的数据total用以记录三个按钮总和 }, incrementTotal (e) { // 定义父组件的 console.log(e.detail) // 通过e.detail获取点击的那个对象 var num = e.detail.num this.setData({ total: this.data.total + e.detail.num }) }, })
分别点击三个按钮时可以看到数值上都有变化的,并且控制台输出的 e.detail
中也有对应的 num
属性.
通过一个简单的小案例,小程序中的自定义事件在这里就介绍完了,学过vue.js的小伙会发现怎么感觉又学了一vue.js o(╥﹏╥)o 其实个人认为官方文档写的还是不错的,想学习小程序的同学也可以按着官方文档上的说明进行学习.
2019-03-21 17:28:12 2668
2019-03-21 17:27:07 2949
2019-03-21 17:25:57 3047
2019-03-21 17:24:53 2953
2019-03-21 17:23:46 3022
公司正在筹划上市,为扩大市场占有率,将在近3个月内每日赠送6个免费服务名额。
今日仅剩下2个免费名额
关于微信小程序web-view组件内嵌h5的具体配置流程
目前, 微信 小程序 开发 呈现出 持续火热 的状态 ,越来越多的商家开始关注并开发自己的小程序, 但是,我们也看到,还有一部分的 商家 持观望的态度,不知道是...
微信小程序 对于许多企业的发展是有助力作用的,因此,现在 许多公司在小程序出现已经开始申请自己的账号,一些提前开始运营 微信小程序 的公司已经取得了不错的成绩,...
了解大连的微信公众号代运营价格,花最少钱干最多事
现在, 微信小程序 成为了企业在进行微信营销时又一个有效的方式,许多企业通过 微信小程序 开发的方式建立起微信上的营销覆盖网络,但是,有些企业在开发小程序之后,...
关于微信小程序web-view组件内嵌h5的具体配置流程
目前, 微信 小程序 开发 呈现出 持续火热 的状态 ,越来越多的商家开始关注并开发自己的小程序, 但是,我们也看到,还有一部分的 商家 持观望的态度,不知道是...
微信小程序 对于许多企业的发展是有助力作用的,因此,现在 许多公司在小程序出现已经开始申请自己的账号,一些提前开始运营 微信小程序 的公司已经取得了不错的成绩,...
了解大连的微信公众号代运营价格,花最少钱干最多事
现在, 微信小程序 成为了企业在进行微信营销时又一个有效的方式,许多企业通过 微信小程序 开发的方式建立起微信上的营销覆盖网络,但是,有些企业在开发小程序之后,...
小程序诞生近一年了,很多人在观望,有人把小程序当做下一个蓝海,ALL-IN小程序,有的人觉得小程序鸡肋,完全不想入驻。说穿了,大家最关系的问题是商机,微信小程序...
如果说 微信运营 成为企业营销推广的新渠道的话,那么微信小程序的发展是能抓住消费者心理的新趋势。随着时代的发展,人们的需求在不断的提高,而消费趋势也在不断的变化...
微信小程序并不是很新的概念,经历过一年不断更新改版的小程序,为什么 微信营销 首获红利?速成应用小程序总结出以下几点原因: 1.流量属性:更多场景、更多入口。小...
随着小程序的问世,越来越多的人将精力都花在小程序这一块,让其瞬间成为一个香饽饽,但是从总体来看,小程序其实是一个并不怎么被看好的产品,因为分享途径少,入口比较局...
目前, 微信 小程序 开发 呈现出 持续火热 的状态 ,越来越多的商家开始关注并开发自己的小程序, 但是,我们也看到,还有一部分的 商家 持观望的态度,不知道是...
现在, 微信小程序 成为了企业在进行微信营销时又一个有效的方式,许多企业通过 微信小程序 开发的方式建立起微信上的营销覆盖网络,但是,有些企业在开发小程序之后,...
微信小程序 对于许多企业的发展是有助力作用的,因此,现在 许多公司在小程序出现已经开始申请自己的账号,一些提前开始运营 微信小程序 的公司已经取得了不错的成绩,...
许多然错过了微信公众号的红利,那么在面对 微信小程序 的红利是,就不能错过了。对于传统企业来说, 微信小程序 可以成为他们转型升级的有一条道路,同时,目前处于小...
微信 小程序 成为最近比较热门的一个 话题 ,特别是 随着小程序各方面能力的不断提升 , 越来越多的企业希望通过开发小程序来弥补微信公众号在营销推广方面的不足,...
微信小程序 在上线之初就收获了无数的目光,而随着 微信小程序 的不断更新,企业可以开发的微信小程序的功能也得到了增加,用户也可以得到更好的使用体验,因此,可以预...