网页跳转总结

364 阅读1分钟

「这是我参与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 组件进行解码