小程序的父子组件传值问题
这几天我在开发一款投票的小程序,由于是在之前投票小程序的基础上进行二次开发,所以很多功能的写法,跟我的编码习惯不太一样,个人的开发习惯问题
这个小程序里面封装了很多的自定义组件,这样就存在父子组件的传值问题,比如下面的场景
~
如上图所示,底部的tabbar是封装的一个组件,首页和搜索其实是一个父页面,只是在点击搜索这个tab的时候,顶部展示了搜索的悬浮框,这个场景就需要父子组件的通信问题
因为我本人开发写自定义组件很少,刚开始对上面的问题一直没有好的思路,我在小程序群里问了一嘴,大家很热心,给了不同的解决方案
因为我平时开发用vue,如果在vue里面,这个很容易就想到了bus通信,也是我高频使用的,但是小程序里面并不没有提供bus通信的相关api
群里给出来不同的几种方案
1、mitt
2、triggerEvent,自定义事件
3、selectComponent ,获取组件实例
4、mobx
其实,方案2、3是官方本身支持的,由于我已经很抵触在引入三方框架了,所以选用了方案2,也就是自定义事件,具体的官方文档如下所示
https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/events.html
另外补充下对自定义组件开发的一些知识
~
平时还是要增加对小程序自定义组件的认识
~