背景
通过 getCurrentPages()
函数我们可以获取到当前页面路由信息,但是获取到的是一个路由栈,包含你跳转的所有路由。如下:
比如我从A页面跳到B页面,就会有两条路由数据,0就是A页面,1就是B页面。
如果我们只想看当前路由怎么办呢,可以简单封装一下。
实践
这里我封装了两个函数
miniTools.js
/* 获取当前页url */
export const getCurrentPageUrl = () => {
//eslint-disable-next-line
const pages = getCurrentPages() // 获取加载的页面
const currentPage = pages[pages.length - 1] // 获取当前页面的对象
const url = currentPage.route // 当前页面url
return url
}
/* 获取当前页带参数的url */
export const getCurrentPageUrlWithArgs = () => {
//eslint-disable-next-line
const pages = getCurrentPages() // 获取加载的页面
const currentPage = pages[pages.length - 1] // 获取当前页面的对象
const url = currentPage.route // 当前页面url
const options = currentPage.options // 如果要获取url中所带的参数可以查看options
// 拼接url的参数
let urlWithArgs = url + '?'
for (const key in options) {
const value = options[key]
urlWithArgs += key + '=' + value + '&'
}
urlWithArgs = urlWithArgs.substring(0, urlWithArgs.length - 1)
return urlWithArgs
}
效果
直接在开发者工具运行就能看到效果