【uniapp小程序】封装路由跳转navigator-ag九游会j9官方网站

ag九游会j9官方网站-j9九游会登录入口首页新版
1
1
【uniapp小程序】封装路由跳转navigator
2023-06-29
141 浏览
江海入海,知识涌动,这是我参与江海计划的第4篇。
1、路由跳转传参简易封装
1.1、首先列举一下需要考虑的参数
url :目标地址
params:有没有携带参数跳转
opentype:跳转方式(文档里名字为open-type)
animation-type:当 open-typenavigatenavigateback 时有效,窗口的显示/关闭动画效果。
animation-duration:窗口显示/关闭动画的持续时间。
1.2、封装代码
本示例代码封装在mina.js 文件
opentype 默认值为 navigate;
animationtype 默认值为pop-in;
animationduration 默认值为300毫秒
javascript
复制代码
vue.prototype.gobypath = function(path, params, opentype = 'navigate', animationtype = 'pop-in', animationduration =
300) {
// 有参数执行这里的逻辑
if(params !==undefined && params !== null){
if (opentype == 'navigate') {
// 如果跳转方式为navigate,则使用navigateto方式跳转,保留当前页面,跳转到应用内的某个页面
uni.navigateto({
url: path "?params=" encodeuricomponent(json.stringify(params)),
animationtype: animationtype,
animationduration: animationduration
})
} else {
// 如果跳转方式不为navigate,则使用redirectto方式跳转,关闭当前页面,跳转到应用内的某个页面
uni.redirectto({
url: path "?params=" encodeuricomponent(json.stringify(params)),
animationtype: animationtype,
animationduration: animationduration
})
}
}else{
// 没有参数直接使用navigateto方式跳转,保留当前页面,跳转到应用内的某个页面
uni.navigateto({
url: path,
animationtype: animationtype,
animationduration: animationduration
})
}
}
// 返回上一页
vue.prototype.goback = function() {
uni.navigateback({
delta: 1
});
}

encodeuricomponent是对参数进行编码,因为url有长度限制,太长的字符串会传递失败。 在获取参数的页面,再使用 decodeuricomponent进行解码即可。
2、案例演示
封装好了我们就来试试好不好使。
介绍一下我的案例:点击轮播图,跳转值轮播图的详情页(index.vue),携带图片和标题两个参数,并渲染在详情页面(detail.vue)。
index.vue文件:
这里只粘贴了部分轮播图组件代码,和所需要的数据。轮播图案例移步至:

 swiper常用属性介绍:
     indicator-dots:轮播图正前方的小圆点(此案例没有使用官方提供的,是自定义的在右下角附近)
     autoplay:是否自动切换
     interval:图片轮播间隔此处为3秒
     duration:图片轮播动画时长 此处为0.5秒
     circular:是否开启无缝轮播(此处为到第三张图片后无缝播放第一张图片)
detail.vue文件
> decodeuricomponent将参数解码并使用json.parse() 方法用来解析json字符串转换为对象
效果图
11.gif

avatarname
后发表内容
1个评论
感谢分享
您的社区活跃积分 3,登录后即可领取  
网站地图