uniApp:路由与页面跳转及传参

方式一:声明式导航

声明式导航,通过组件进行跳转。官方文档:详情
使用 navigator 组件进行页面跳转。

属性类型默认值说明
urlString应用内的跳转链接,值为相对路径或绝对路径,如:“…/first/first”,“/pages/first/first”,注意不能加 .vue 后缀
open-typeStringnavigate跳转方式
  • open-type 有效值

    说明
    navigate保留当前页面,跳转到应用内的某个页面。 对应 uni.navigateTo 的功能
    redirect跳转到详情页,并关闭当前页面。 对应 uni.redirectTo 的功能
    switchTab跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。 对应 uni.switchTab 的功能
    reLaunch对应 uni.reLaunch 的功能
    navigateBack对应 uni.navigateBack 的功能
    exit退出小程序,target="miniProgram"时生效
    <template>
    	<view>
    		<navigator url="/pages/detail/detail">跳转至详情页</navigator>
    		<!-- 跳转至TabBar页面需要属性 switchTab -->
    		<navigator url="/pages/message/message" open-type="switchTab">跳转至信息页</navigator>
    	</view>
    </template>
    

方式二:编程式导航

编程式导航,通过 API 进行跳转。官方文档:详情

uni.navigateTo

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

uni.navigateTo 参数类型必填说明
urlString需要跳转的应用内非 tabBar 的页面的路径 , 路径后可以带参数。参数与路径之间使用?分隔,参数键与参数值用=相连,不同参数用&分隔;如 ‘path?key=value&key2=value2’,path为下一个页面的路径,下一个页面的onLoad函数可得到传递的参数
animationTypeString窗口显示的动画效果,详见:窗口动画
animationDurationNumber窗口动画持续时间,单位为 ms
eventsObject页面间通信接口,用于监听被打开页面发送到当前页面的数据。2.8.9+ 开始支持。
successFunction接口调用成功的回调函数
failFunction接口调用失败的回调函数
<template>
	<view>
        <button type="default" @click="goDetail">跳转至详情页</button>
	</view>
</template>

<script>
export default {
    methods: {
        goDetail() {
            uni.navigateTo({
                url: '../detail/detail'
            })
        }
    }
}
</script>

uni.switchTab

跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。
注意: 如果调用了 uni.preloadPage(OBJECT) 不会关闭,仅触发生命周期 onHide

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

uni.redirectTo

关闭当前页面,跳转到应用内的某个页面。
注意:跳转到 tabBar 页面只能使用 switchTab 跳转。

参数类型必填说明
urlString需要跳转的应用内非 tabBar 的页面的路径,路径后可以带参数。参数与路径之间使用?分隔,参数键与参数值用=相连,不同参数用&分隔;如 ‘path?key=value&key2=value2’
successFunction接口调用成功的回调函数
failFunction接口调用失败的回调函数
completeFunction接口调用结束的回调函数(调用成功、失败都会执行)
<template>
	<view>
		<button type="default" @click="redirectDetail">跳转到详情页,并关闭当前页面</button>
	</view>
</template>

<script>
	export default {
		methods: {
			redirectDetail() {
				uni.redirectTo({
					url: '/pages/detail/detail?id=80'
				})
			}
		},
		onUnload() {
			console.log('导航页面已卸载')
		}
	}
</script>

路由跳转传参

通过 url 地址进行传参,再通过 onload 生命周期函数的 options 参数进行接收。

  • 多个参数之间用 & 进行连接。
  • 声明式导航

    通过url后面加 ?参数=值 进行传参,多个参数之间用 & 进行连接。

    <template>
    	<view>
            <!-- 通过url后面加 ?参数=值 进行传参 -->
    		<navigator url="/pages/detail/detail?id=80">跳转至详情</navigator>
    	</view>
    </template>
    
    <!-- 通过onload生命周期函数中的options值进行接收 -->
    <script>
    export default {
        onload(options) {
            console.log(options)
        }
    }
    </script>
    
  • 编程式导航

    通过url后面加 ?参数=值 进行传参,多个参数之间用 & 进行连接。

    <template>
    	<view>
    		<button type="default" @click="goDetail">跳转至详情页</button>
    	</view>
    </template>
    
    <script>
    	export default {
    		methods: {
    			goDetail() {
    				uni.navigateTo({
    					url: '/pages/detail/detail?id=80&age=18'
    				})
    			}
    		}
    	}
    </script>
    
    <!-- 通过onload生命周期函数中的options值进行接收 -->
    <script>
    export default {
        onload(options) {
            console.log(options)
        }
    }
    </script>
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Uniapp是一款基于Vue.js框架开发的跨平台应用框架,它可以一次编写代码,同时生成多个平台的应用,包括H5、小程序、App等。下面是Uniapp中常见的路由页面跳转的API: 1. 路由跳转Uniapp提供了uni.navigateTo、uni.redirectTo、uni.reLaunch和uni.switchTab这几个API来实现不同形式的页面跳转。 - uni.navigateTo:保留当前页面,跳转到应用内的某个页面。可返回上一页。 - uni.redirectTo:关闭当前页面,跳转到应用内的某个页面。不可返回上一页。 - uni.reLaunch:关闭所有页面,打开应用内的某个页面。 - uni.switchTab:跳转到应用内的某个tabBar页面,同时关闭其他所有非tabBar页面。 2. 路由传参:在跳转页面时,可以通过URL参数传递数据。 - uni.navigateTo({ url: '/pages/detail?id=1' }),在目标页面可以通过uni.getStorageSync('id')获取id的值。 3. 获取路由参数:在目标页面,可以通过uni.getStorageSync('key')来获取跳转时传递的参数值。 4. 返回上一页:Uniapp中可以通过uni.navigateBack()来返回上一页。 5. 重定向跳转Uniapp中可以通过uni.redirectTo()实现页面的重定向跳转。 通过上述路由页面跳转的API,开发者可以在Uniapp中灵活实现不同形式的页面跳转,并且还可以传递参数进行页面间的数据交互。这为开发者提供了更多的操作空间,使得应用的跳转逻辑更加丰富和灵活。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

孤安先生

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

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

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

打赏作者

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

抵扣说明:

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

余额充值