- 如何在插件中定义插件的全局变量呢?
小程序是可以在app.js中定义,那插件呢?
2020-08-13 - 小程序开发过程中遇到的那些事儿
一、使用wx.getLaunchOptionsSync()这个Api时的注意事项1.该Api获取的是小程序 冷 启动时的参数,与App.onLaunch的回调参数一致。 2.要再更仔细的强调的话,就是说,如果在小程序冷启动后,业务逻辑牵扯到新的启动参数的话,不能用这个Api获取,得拿App.onShow的回调参数。 二、小程序setData给一个数组中的某一对象的一个属性赋值 data: { list: [ { spu_name: "欧莱雅小蜜罐金致臻颜花蜜奢侈痒女补", is_check: true }, { spu_name: "水保湿滋润抗皱面妆欧莱", is_check: false } ] }, let index = 1 let = 'list[' + index + '].is_check' this.setData({ [s]: true }) 三、小程序canvas层级太高,业务逻辑可选的处理方式:方案一、如果要在canvas之上写模块(eg: 弹框,页面顶部的自定义导航栏),该模块所有的view标签换成cover-view标签,这种方法能解决简单的模块兼容,具体cover-view的使用以及坑点可参考微信官方文档:https://developers.weixin.qq.com/miniprogram/dev/component/cover-view.html。 方案二、在canvas之上显示一个弹框时,可以使用wx:if暂时隐藏该canvas,弹框再次隐藏时重新显示canvas。 四、业务逻辑中遇到授权button要阻止冒泡,如何处理授权button是有特定的属性获取授权信息,我们一般阻止冒泡一般用catchtap方法,那么授权类型的button在这种情况下是用不了catchtap的,因此,这个需要一个新的解决方案: [图片] 方案一、用一个view标签将这个button包起来,在这个view标签上写上catchtap,对应的方法写成空的即可。 class="cart-box" catchtap="preventBubble"> if="{{!isAuth}}" class="cart" open-type="getUserInfo" bindgetuserinfo="goAuth"> class="iconfont icon-jiagouwuche font-25 icon"> else class="cart" bindtap="addCart"> class="iconfont icon-jiagouwuche font-25 icon"> 五、使用wx.showTabBarRedDot、wx.hideTabBarRedDot这两个Api时的注意事项 1.开发时得注意,要在tab页面使用这些Api,不要在非tab页面使用,否则console会报错。 六、好玩的小程序开发调试利器之一-AppDataAppData panel 用于显示当前项目运行时小程序 AppData 具体数据,实时地反映项目数据情况,可以在此处编辑数据,并及时地反馈到界面上。 话不多说,体验效果如下: [图片] [图片] [图片] 七、好玩的小程序开发调试利器-自动预览自动预览可以实现编写小程序时快速预览,免去了每次查看小程序效果时都要扫码或者使用小程序助手的麻烦。开发者只需按下快捷键,保持前台运行的微信即可自动唤出或刷新小程序。 要使用自动预览功能,需要配合 6.6.7 及以上的微信客户端版本。 [图片] 八、好玩的小程序开发调试利器-多账号调试通过 菜单 - 工具 - 多帐号调试 可以使用多帐号调试功能,这是做助力活动(需要多人助力)的开发者的福音。 [图片]
2020-08-25 - 小程序多组件高复杂度实现方案
备注:此方法多适用于多模块高复杂度多插件的页面开发 原理:应用事件总线进行事件传递,并将数据挂载到wx上用于各个组件模块共享 一、事件总线事件总线挂载在wx对象上wx.eventBus派发事件 wx.eventBus.$emit('name',params)监听事件 wx.eventBus.$on('name',fn)示例: [图片] // 派发事件addCart 传递参数为1 wx.eventBus.$emit("addCart", 1) // 监听事件 // 方式1 wx.eventBus.$on("addCart", num => { this.setData({ number: num }); }); // 方式2 this.setNum为methods中的方法 wx.eventBus.$on("addCart", this.setNum).bind(this); 二、共享数据设置共享数据wx.setShareData(data)获取共享数据wx.getShareData()示例: [图片] // 设置共享数据 一般为主页面设置共享数据,组件更新部分数据 wx.setShareData({ data: { spu, sku, watch, postageFee }, chooseSkuInfo, // 选择的sku footerBtnType, pageSetting, closeCommunity: false }); // 获取共享数据 const { footerBtnType, pageSetting, chooseSkuInfo, data: { sku } } = wx.getShareData() // 组件中 更新部分数据 wx.setShareData({ chooseSkuInfo: { ...item, number: 1 } });
2020-08-19