Skip to content

router

Const router: Object

页面导航相关办法 基于 uni-use/useRouter 封装,并增加了一些常见的状态。

See

路由跳转 API 封装

Type declaration

NameType
afterEach(hook: (to: string, from: string) => void) => void
parseQuery(queryString: string) => any
parseUrl(fullURL: string) => { path: string ; query: any }
resolveUrl(path: string, query?: any) => string
setDefault404Page(path: string) => void
stringifyQuery(params: any) => string
back(delta?: number) => Promise<any>
getPageDelta(fullURL: string) => number
push(url: string, query?: LocationQueryRaw, options?: RouterOptions) => Promise<any>
receivePrevPageData(defaultValues?: any) => any
receiveTabPageOptions(defaultValues?: any) => any
relaunch(url: string, query?: LocationQueryRaw, options?: RouterOptions) => Promise<any>
replace(url: string, query?: LocationQueryRaw, options?: RouterOptions) => Promise<any>
tab(url: string, query?: LocationQueryRaw, options?: RouterOptions) => Promise<any>

afterEach: (hook: (to: string, from: string) => void) => void

后置路由守卫


parseQuery: (queryString: string) => any

转换 query 字符串为对象

示例

ts
router.parseQuery('?id=1&a=2') // {id:1, a:2}

parseUrl: (fullURL: string) => { path: string ; query: any }

将完整 url 解析成 url 和 query 部分

示例

ts
router.parseUrl('/pages/index/index?id=1&a=2') // {url:'/pages/index/index', query:{id:1, a:2}}

resolveUrl: (path: string, query?: any) => string

将 path 和 query 部分组合成完整的 url

示例

ts
const fullURL = router.resolveUrl(url, query)

setDefault404Page: (path: string) => void

设置默认的 404 页面路径

示例

ts
// 只在 App.vue 里面设置即可
import {router} from '@ifanrx/uni-mp'

router.setDefault404Page('/pages/not-found/index')

stringifyQuery: (params: any) => string

转换 query 对象为字符串

示例

ts
router.stringifyQuery({a: 1}) // ?a=1

back: (delta?: number) => Promise<any>

返回上一页

示例

ts
router.back(1)

getPageDelta: (fullURL: string) => number

获取某个页面在页面栈中的倒数第几层

示例

ts
const delta = router.getPageDelta('/pages/index/index?id=1')

push: (url: string, query?: LocationQueryRaw, options?: RouterOptions) => Promise<any>

跳转到指定页面

示例

ts
router.push('/pages/index/index', {id: 1})

receivePrevPageData: (defaultValues?: any) => any

获取上一页页面发送的数据,调用后会清空现有数据,请自行保存数据

示例

ts
const data = router.receivePrevPageData()

receiveTabPageOptions: (defaultValues?: any) => any

获取 tab 页面参数,调用后会清空现有数据,请自行保存数据

示例

ts
const options = router.receiveTabPageOptions()

relaunch: (url: string, query?: LocationQueryRaw, options?: RouterOptions) => Promise<any>

关闭所有页面,并重定向到新页面

示例

ts
router.relaunch('/pages/index/index', {id: 1})

replace: (url: string, query?: LocationQueryRaw, options?: RouterOptions) => Promise<any>

跳转新地址并替换当前页面

示例

ts
router.replace('/pages/index/index', {id: 1})

tab: (url: string, query?: LocationQueryRaw, options?: RouterOptions) => Promise<any>

跳转到指定 tab 页面

示例

ts
router.tab('/pages/index/index', {id: 1})

源码

router/index.js