小程序页面之间如何传递数据
直接在url里传递
js
wx.navigateTo({
url: `/pages/detail/detail?pid=${spuId}`
})
少量数据建议使用这种方法传递
本地缓存
使用setStorageSync
和getStorageSync
js
wx.setStorageSync('key', 'value')
wx.getStorageSync('key')
大量数据的时使用这种方法
EventChannel
EventChannel是小程序新加的机制, 实现页面间事件通信
大量数据时使用这种方法(实际项目中,上面俩种方法用的多,这种方法没用过)
triggerEvent
triggerEvent自定义组件触发事件,将数据传递给父组件,类似于vue中的$emit
js
this.triggerEvent('customevent', {}, { bubbles: true, composed: true })
bubbles:事件是否冒泡
composed:事件是否可以穿越组件边界,为false时,只能传递到父组件;为true时,可以传递到更上层的组件