「这是我参与11月更文挑战的第4天,活动详情查看:2021最后一次更文挑战」
网页跳转的方法
vue路由跳转:
1.router-link
<router-link to="routePath">跳转</router-link> 、
routePath 路由路径,要在routes文件中定义
2.this.$router.push()
跳转到指定URL,向history栈添加一个新的记录,点击后退会返回至上一个页面
包括:
(1)query
- query 要用path引入,在浏览器地址栏中不显示参数
- 类似于我们ajax中get传参,在浏览器地址栏中显示参数
- query在路由配置不需要设置参数
- query会保存传递过来的值,刷新不变
(2)params
- params在路由配置必须设置参数
- params传参刷新会无效
- params只能用name来引入路由
- params则类似于post,在浏览器地址栏中不显示参数
(3)this.$router.replace()
跳转到指定URL,替换history栈中最后一个记录,点击后退会返回至上上一个页面
(4)this.$router.go(n)
类似window.history.go(n),可以向前、向后跳转n个页面,n可正(先后跳转)可负(向前跳转)
返回上一页:
this.$route.go(-1)
uni-app的navigateTo:
uni.navigateTo({
url: '/pages/recordList/index'
})
参数直接拼接在url后面,取参数时在新页面的onLoad函数options中取值
返回上一页:
uni.navigateBack()
uni.navigateBack({delta: 2})
window自带的方法
路由跳转只能跳转自己项目的页面,有的还需要在路由中配置,如果跳转第三方页面,一般用window自带的方法
1.window.location.replace('www.baidu.com')
2.windows.location.href="/url"
扩展: windows.location.href 直接打印是当前网址的页面 window.location.reload()刷新当前页面
有时需要跳转页面,或者网址过长而浏览器访问时会把一些额外参数忽略,因此我们可以跳转网址自己进行加码,截取拼接操作
例:
uni.navigateTo({
url: `/pages/submitSuccess/index?pageUrl=${decodeURIComponent(window.location.href.split('pageUrl=')[1])}`,
});
encodeURIComponent()函数对 URI 组件进行编码
decodeURIComponent()函数对 URI 组件进行解码