剑轩

uni-app页面跳转与传值。uni-app 小程序 本地存储。传值的编码与解码,传递中文参数

电脑版发表于:2020/9/28 10:11

注意跳转的目标页面需要在page.json中申明哦,不然无法跳转哦,应该跳转的目标地址是一个页面,所以需要定义


uni-app中页面跳转的方式可以在文档看到
其实感觉几乎和微信小程序一样,在框架tabBar中有介绍。
官网地址:https://uniapp.dcloud.net.cn/api/router.html#navigateto



如下:可以看到三种跳转方式




uni.navigateTo:页面跳转,保护回退按钮,可以回退到跳转之前的页面
uni.redirectTo :页面重定向不包含回退
uni.switchTab :底部菜单的页面跳转





uni-app中页面跳转传值

直接问号传值就行了,很方便

获取的地方会自动转换成参数!


跳转传值的代码:

uni.navigateTo({
  url: "/pages/detail/detail?taskName="+value				
})

跳转后获取的代码(vue3 中的ts)

import { onLoad, onShow } from '@dcloudio/uni-app'

onLoad((e) => {
    state.taskName = e?.taskName
})



传值的编码与解码
一般用于传递中文的情况下

跳转前编码:

<navigator :url="'/pages/test/test?item='+ encodeURIComponent(JSON.stringify(item))"></navigator>

接受参数地方的解码:

// 在test.vue页面接受参数
onLoad: function (option) {
	const item = JSON.parse(decodeURIComponent(option.item));
}



navigator标签的跳转与传值
跳转与传值

<navigator :url="`/pages/labroom-v2/component/teachingDynamic/teachingDynamicDetails?courseid=${cv.courseID}&classid=${cv.classID}&PlanChapterOrder=${cv.planChapterOrder}&courseName=${encodeURIComponent(v.courseName)}&className=${encodeURIComponent(cv.className)}`" class="bnt-nav"
  hover-class="navigator-hover">
  <text class="cu-bt-detail-btn">详情</text>
</navigator>

取值代码一样没有区别,注意跳转的目标页面需要在page.json中申明哦,不然无法跳转哦,应该跳转的目标地址是一个页面,所以需要定义



可以使用本地存储传值
跳转前传值

jumpDetails(keyfoucsDatas) {
    console.log("页面跳转")

    uni.setStorage({
        key: 'keyfoucsDatas',
        data: keyfoucsDatas,
        // 这个success好像还必须要留着
        success: function () {
            console.log('存储成功');
        }
    });

    uni.navigateTo({
        url: "/pages/index/key-focus-group-details"
    })
},

跳转后取值

onShow(() => {
    console.log("页面跳转过来了")
   
    uni.getStorage({
        key: 'keyfoucsDatas',
        success: function (res) {
            console.log("跳转过来获得的数据",res.data);
        }
    });
})








关于TNBLOG
TNBLOG,技术分享。技术交流:群号677373950
ICP备案 :渝ICP备18016597号-1
App store Android
精彩评论
{{item.replyName}}
{{item.content}}
{{item.time}}
{{subpj.replyName}}
@{{subpj.beReplyName}}{{subpj.content}}
{{subpj.time}}
猜你喜欢