uniapp+vue3路由跳转传参

1,133 阅读1分钟

一、通过url传(短数据适用)

//起始页index.vue
uni.navigateTo({  
    url: '/pages/maillist/deptDetailInfo?id=1&name=uniapp'  
});
//接收页deptDetailInfo.vue
onLoad: function (option) {
    console.log(option);
}

二、监听事件数据传(对象适用)

//起始页index.vue
uni.navigateTo({
        url:"/pages/maillist/deptDetailInfo",
        success: function(res) {
            res.eventChannel.emit('acceptDataFromOpenerPage', item)
        }
})
//接收页deptDetailInfo.vue
import { reactive,getCurrentInstance } from 'vue';

onLoad: function (option) {
    const instance:any = getCurrentInstance()?.proxy;
    const eventChannel:any = instance.getOpenerEventChannel();
    eventChannel.on('acceptDataFromOpenerPage', function(data) {
            console.log(data);
    })
}

三、navigator传(url有长度限制)

//起始页index.vue
<navigator :url="'/pages/maillist/deptDetailInfo?item='+ encodeURIComponent(JSON.stringify(item))"></navigator>
//接收页deptDetailInfo.vue
onLoad: function (option) {
    const item = JSON.parse(decodeURIComponent(option.item));
}

vue2参考官网
uniapp.dcloud.net.cn/api/router.…