uniapp开发中遇到几个问题,这里记录下。
前提:使用uni-simple-router作为路由,uvie作为ui框架
1、uniapp官网给出了以下两种路由传参的方式
不编码传输
//实例化
const router = new Router({
encodeURI:false,
routes:[
//...一些路由信息
]
});
// 假如你是通过name 来进行跳转。
this.$Router.push({ name: 'router1', params: { userId: '123' }})
// 同样 等同于
this.$Router.push({ path: '/pages/router/router1/router1', query: { userId: '123' }})
// 获取方式
this.$Route.query.userId;
//URL 表现
http://xxxx/router1?userId=123
编码传输
//实例化
const router = new Router({
encodeURI:true, //默认为true
routes:[
//...一些路由信息
]
});
// 假如你是通过name 来进行跳转。
this.$Router.push({ name: 'router1', params: { userId: '123' }})
// 同样 等同于
this.$Router.push({ path: '/pages/router/router1/router1', query: { userId: '123' }})
// 获取方式
this.$Route.query.userId;
//URL 表现
http://xxxx/router1?query=%257B%2522userId%2522%253A%2522123%2522%257D
我使用第一种方式,只要一刷新参数就没了,使用第二种没有问题?
2、第二个问题是建立在第一个问题的基础上的,在使用第一种不编码传输的时候,由于遇到了刷新丢失参数的问题,在打印this.$Router对象的时候,找到了一个参数
路由配置
参数位置
最后通过
this.$Router.$route.history.current.params.id;
获得到了路径后面的参数,但是不知道这个方法可不可行?
微信公众号搜索:cdgeek 项目分享,项目交流都可以一起探讨哦
官网地址:www.mksoft.cn
项目交流,项目合作。诚心找有志同道合的小伙伴们,有项目的也可以一起分享哦