uni-app uni中的导航跳转

uni中的导航跳转

声明式跳转(借助我们组件进行跳转)

就用到了我们的导航组件(navigator)

属性名类型默认值说明平台差异说明
urlString应用内的跳转链接,值为相对路径或绝对路径,如:"…/first/first","/pages/first/first",注意不能加 .vue 后缀

测试:

<template>
    <div>
        <view>导航跳转的学习</view>
        <navigator url="/pages/message/message">跳转至'信息页'</navigator>
    </div>
</template>

但是如果你跳转至有tabBar的页面就不行了

而且在在微信小程序中控制台也不会报错

你得加上一个open-type:

属性名类型默认值说明平台差异说明
open-typeStringnavigate跳转方式

open-type 有效值

说明平台差异说明
navigate对应 uni.navigateTo 的功能
redirect对应 uni.redirectTo 的功能
switchTab对应 uni.switchTab 的功能
reLaunch对应 uni.reLaunch 的功能字节跳动小程序与飞书小程序不支持
navigateBack对应 uni.navigateBack 的功能
exit退出小程序,target="miniProgram"时生效微信2.1.0+、百度2.5.2+、QQ1.4.7+
<template>
    <div>
        <view>导航跳转的学习</view>
        <navigator url="/pages/req/req" open-type="switchTab">跳转至'信息页'</navigator>
    </div>
</template>

redirect:

<template>
    <div>
        <view>导航跳转的学习</view>
        <navigator url="/pages/message/message" open-type="redirect">跳转至'信息页'</navigator>
    </div>
</template>

如果我们把open-type的值设置成redirect,这样就会把当前的页面进行关闭,再跳转到下一个页面

测试(是否销毁了):

export default{
    onUnload(){
        console.log('跳转前的页面卸载了')
    }
}
利用编程式导航进行跳转(借助api进行跳转)

定义一个按钮

<button @click="gotoStor">跳转至'本地存储数据'</button>
uni.navigateTo(OBJECT)

保留当前页面,跳转到应用内的某个页面,使用uni.navigateBack可以返回到原页面。

参数类型必填默认值说明平台差异说明
urlString需要跳转的应用内非 tabBar 的页面的路径 , 路径后可以带参数。参数与路径之间使用?分隔,参数键与参数值用=相连,不同参数用&分隔;如 ‘path?key=value&key2=value2’,path为下一个页面的路径,下一个页面的onLoad函数可得到传递的参数
animationTypeStringpop-in窗口显示的动画效果,详见:窗口动画App
animationDurationNumber300窗口动画持续时间,单位为 msApp
eventsObject页面间通信接口,用于监听被打开页面发送到当前页面的数据。2.8.9+ 开始支持。
successFunction接口调用成功的回调函数
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)
gotoStor(){
    uni.navigateTo({
    	url:'/pages/req/Stor'
	})
}

那跳转到tabBar的页面:

uni.switchTab(OBJECT)

跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。

注意: 如果调用了 uni.preloadPage(OBJECT) 不会关闭,仅触发生命周期 onHide

OBJECT参数说明

参数类型必填说明
urlString需要跳转的 tabBar 页面的路径(需在 pages.json 的 tabBar 字段定义的页面),路径后不能带参数
successFunction接口调用成功的回调函数
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)

object.success 回调函数

参数

Object res

属性类型说明
eventChannelEventChannel和被打开页面进行通信
gotoReq(){
	uni.switchTab({
    	url: '/pages/req/req'
	})
}

我们跳转至tabBar页面前一个页面被卸载了,因为

uni.redirectTo(OBJECT)

关闭当前页面,跳转到应用内的某个页面。

OBJECT参数说明

参数类型必填说明
urlString需要跳转的应用内非 tabBar 的页面的路径,路径后可以带参数。参数与路径之间使用?分隔,参数键与参数值用=相连,不同参数用&分隔;如 ‘path?key=value&key2=value2’
successFunction接口调用成功的回调函数
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)
redirectStor(){
    uni.redirectTo({
		url:'/pages/req/Stor'
    })
}
导航跳转传递参数
声明式跳转传参
<navigator url="/pages/message/message?id=100">跳转至'信息页'</navigator>

传多个参数

<navigator url="/pages/message/message?id=100&name='我'">跳转至'信息页'</navigator>
message接收参数
onLoad(options){
	console.log(options)
}

这个options就是我们上一级传过来的参数

{id: "100"}
编程式导航传参和声明式跳转传参是一样的
uni.navigateTo({
	url:'/pages/req/Stor?id=200&name=我'
})
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

结城明日奈是我老婆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值