uniapp常见的路由与页面跳转api
uniapp是一款跨平台的开发框架,开发者可以使用uniapp来开发各种各样的应用,如小程序、App等等。在开发一个应用时,路由与页面跳转是必不可少的功能,uniapp提供了多种API来实现这些功能。下面将介绍其中一些常见的API。
1.路由跳转api
在uniapp中,路由跳转是通过uni.navigateTo和uni.redirectTo方法实现的。这两个方法的使用方法基本相同,只是他们的行为略有不同。
使用uni.navigateTo方法可以实现在当前页面打开一个新页面,并且能够返回到当前页面。例如,下面代码打开一个名为detail的页面:
uni.navigateTo({
url: '/pages/detail/detail'
})
使用uni.redirectTo方法可以实现在当前页面关闭并替换为一个新页面。例如,下面代码打开一个名为detail的页面:
uni.redirectTo({
url: '/pages/detail/detail'
})
需要注意的是,uni.navigateTo最多可以打开10个页面,超过10个之后会报错。如果需要打开多于10个页面,可以考虑使用uni.switchTab方法,该方法可以打开一个Tab页。
2.路由传参
在uniapp中,路由跳转的时候可以通过query参数传递数据。例如,下面代码中的query参数可以传递一些数据到目标页面:
uni.navigateTo({
url: '/pages/detail/detail?key=value'
})
在目标页面中可以通过onLoad方法获取到传递的数据:
export default {
onLoad(query) {
console.log(query.key) // output: value
}
}
需要注意的是,传递的数据大小不能超过1MB。
3.页面返回
在uniapp中,可以使用uni.navigateBack方法返回上一页:
uni.navigateBack()
该方法可以返回到上一页,也可以返回到任何指定页。例如,下面代码可以返回到上两级页面:
uni.navigateBack({
delta: 2
})
4.Tab页切换
在uniapp中,Tab页切换是通过uni.switchTab方法实现的。例如,下面代码可以跳转到名为index的Tab页:
uni.switchTab({
url: '/pages/index/index'
})
需要注意的是,使用uni.switchTab方法只能跳转到Tab页,无法跳转到非Tab页。如果需要跳转到非Tab页,可以使用uni.navigateTo方法。
5.webview跳转
在uniapp中,可以通过uni.navigateTo方法打开一个webview页面。例如,下面代码可以打开一个名为webview的webview页面:
uni.navigateTo({
url: '/pages/webview/webview?url=https://www.baidu.com'
})
需要注意的是,webview页面需要在manifest.json文件中单独配置。例如:
{
"h5": {
"publicPath": "/",
"custom": {
"titleNView": true,
"app-plus": {
"titleNView": {
"titleColor": "#ffffff",
"backgroundColor": "#007aff",
"progress": {
"color": "#ffffff",
"height": "2px"
}
},
"bounce": "none"
}
}
},
"app-plus": {
"titleNView": {
"titleColor": "#ffffff",
"backgroundColor": "#007aff",
"progress": {
"color": "#ffffff",
"height": "2px"
}
},
"webview": {
"titleNView": {
"titleColor": "#ffffff",
"backgroundColor": "#007aff",
"progress": {
"color": "#ffffff",
"height": "2px"
}
}
}
}
}
总结
路由与页面跳转在uniapp中是必不可少的功能。在本文中,我们介绍了uniapp中常见的路由与页面跳转api,包括路由跳转、路由传参、页面返回、Tab页切换和webview跳转。我们需要根据具体场景选择不同的方法来实现我们的页面跳转逻辑。