微信小程序启动传参以及没有再次被触发问题

今天遇到微信小程序启动传参以及再次触发的问题,搞了差不多2小时,测试环境以及真机调试都是看不出问题的,但是在线上确实存在这种问题:

先上代码

onLoad (query) {
      this.shopCode = decodeURIComponent(query.scene)
      // this.shopCode = wx.getLaunchOptionsSync().query.scene || ''
  },

今天我主要说的是这两种区别。

场景:通过微信扫码进入小程序,并带入参数进入小程序

onLoad是小程序的生命周期

相同点是:当我们使用启动小程序时:

1):通过微信小程序API :wx.getLaunchOptionsSync().query.scene

2):decodeURIComponent(query.scene) 都是可以得到启动参数

但是不同点是:再次启动小程序时decodeURIComponent(query.scene)是获取不到启动参数的,也就是说只触发一次

特此记录,以免踩坑

 

 

### 微信小程序 Component 组件间传参方法 #### 使用 `properties` 实现父组件向子组件传参微信小程序中,可以通过设置自定义组件的 `properties` 属性来接收来自父组件的数据。这允许开发者轻松地将数据从父级传递给子级。 ```javascript // 子组件 wxml 文件 <view>{{message}}</view> // 子组件 js 文件 Component({ properties: { message: String, // 定义一个名为 'message' 的属性 }, }) ``` 当在页面或其他组件中引入并使用此自定义组件时,可以像下面这样指定要传递的信息: ```html <!-- 父组件或页面 --> <custom-component message="你好,世界"></custom-component> ``` 这种方式使得消息能够被成功发送到目标组件,并显示出来[^1]。 #### 利用事件机制完成子组件向父组件反馈信息 对于反向通信——即由子组件触发并向其上级报告某些状态变化,则需依赖于事件绑定技术。具体做法是在子组件内部调用特定的方法发出通知;而在外部则预先设定好相应的处理器等待响应。 ```javascript // 子组件 js 文件 Component({ methods: { sendDataToParent() { const data = { name: "Alice", age: 28 }; this.triggerEvent('childData', data); } } }) // 父组件 js 文件 Page({ handleReceiveDataFromChild(event) { console.log(event.detail); // 接收到的数据对象 } }); ``` 接着,在 WXML 结构里关联起这两个部分: ```html <!-- 父组件模板 --> <custom-component bindchildData="handleReceiveDataFromChild"></custom-component> <button onTap="sendDataToParent">点击我</button> <!-- 假设这是触发条件 --> ``` 上述代码展示了如何让子组件主动推送更新至父节点的过程[^3]。 #### 数据双向同步模式下的应用实践 有时可能希望两个方向上的交互更加紧密耦合一些,比如实现表单控件的状态实时共享等场景下尤为有用。此时可借助框架所提供的内置功能或者自行设计一套解决方案达成目的。 不过值得注意的是,虽然理论上可行,但在实际项目开发过程中应谨慎考虑是否真的有必要采用如此复杂的设计思路,因为过度追求灵活性反而可能导致维护成本上升等问题发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值