vue3+vite+ts的项目中,跳转时uni.navigateTo通过eventChannel向被打开页面传送数据,被打开的页面要如何接收
时间: 2024-02-24 11:53:56 浏览: 137
在vue3+vite+ts的项目中,跳转时uni.navigateTo通过eventChannel向被打开页面传送数据,被打开的页面可以通过以下代码来接收传递过来的数据:
```typescript
import { defineComponent } from 'vue'
import { getCurrentInstance } from 'vue'
export default defineComponent({
setup() {
const instance = getCurrentInstance()
const route = instance?.appContext.config.globalProperties.$route
const eventChannel = route?.params?.eventChannel
eventChannel?.on('eventName', (data: any) => {
console.log(data)
})
return {
// ...
}
}
})
```
其中,getCurrentInstance()方法可以获取到当前组件实例,通过appContext.config.globalProperties.$route可以获取到当前路由信息,从而获取到eventChannel参数。
在on方法中,eventName为在打开页面时通过eventChannel.emit方法发送事件时的事件名,data为传递过来的数据。需要注意的是,由于ts的类型检查,需要对传递过来的数据进行类型声明。
阅读全文