uniapp-router

1.1.1 • Public • Published

uniapp-router

uniapp-router是基于uniapp开发的路由(参考vue-router),为开发者提供更方便的路由控制

目录

安装

将其添加为项目的依赖

$ npm i --save uniapp-router

main.js 中编写以下代码:

import router from 'uniapp-router'
app.use(router)

API Promise

  • 注意:被beforeEach拦截的跳转也会回调catch方法 为了方便开发者,我们给一些跳转的API包装了一层Promise,如 push、 replace、navigateTo、 redirectTo、 reLaunch、switchTab
router.push('/pages/test/index')
// 跳转成功回调
.then(res=>{})
// 失败回调
.catch(err=>{})
// 原生的navigateTo也可以使用
uni.navigateTo({ url:'/pages/test/index' })
.then(res=>{})
.catch(err=>{})

API

beforeEach(callback)

增加全局的导航前置守卫, 当执行了 navigateTo、 redirectTo、 reLaunch、switchTab时,调用此回调

属性 类型 描述
callback Function 回调函数,触发跳转时回调
to Objecet 即将要进入的目标
from Objecet 当前导航正要离开的路由
next Function 回调以验证导航,保证路由正确跳转
type String 路由跳转方式 navigateTo、 redirectTo、 reLaunch、switchTab

示例

router.beforeEach((to, from, next, type)=>{
	if(to.path==='/pages/test/index'){
		// 禁止跳转
		console.log('我被禁止跳转了')
	}else {
		// 允许跳转
		next()
	}
})

afterEach(callback)

增加全局的导航后置守卫, 当执行了 navigateTo、 redirectTo、 reLaunch,、switchTab后,调用此回调

属性 类型 描述
callback Function 回调函数,触发跳转时回调
to Objecet 即将要进入的目标
from Objecet 当前导航正要离开的路由
type String 路由跳转方式 navigateTo、 redirectTo、 reLaunch、switchTab

示例

router.afterEach((to, from, type)=>{
	console.log(`我使用了${type},从${from.route}跳转到了${to.route}`)
})

onError(callback)

onError会调用uni.onPageNotFound方法 监听应用要打开的页面不存在事件

属性 类型 描述
callback Function 回调函数
path String 不存在页面的路径 (代码包路径)
query Object 打开不存在页面的 query 参数
isEntryPage Boolean 是否本次启动的首个页面(例如从分享等入口进来,首个页面是开发者配置的分享页面)

示例

router.onError((path, query, isEntryPage)=>{
})
// 等同于
uni.onPageNotFound((path, query, isEntryPage)=>{
})

push(url, data, other)

push会调用uni.navigateTo方法

属性 类型 必填 描述
url String 需要跳转的应用内非 tabBar 的页面的路径
data Objecet 参数对象
other Objecet 其他选项配置,如: animationType、success、fail...等

示例

router.push('/pages/test/index', {
	 name:'test' 
},{
	success:e=>{}
})
// 等同于
uni.navigateTo({
	url:'/pages/test/index?name=test',
	success:e=>{}
})

replace(url, data, other)

replace会调用uni.redirectTo方法

属性 类型 必填 描述
url String 需要跳转的应用内非 tabBar 的页面的路径
data Objecet 参数对象
other Objecet 其他选项配置,如: success、fail...等

示例

router.replace('/pages/test/index', {
	 name:'test' 
},{
	success:e=>{}
})
// 等同于
uni.redirectTo({
	url:'/pages/test/index?name=test',
	success:e=>{}
})

reLaunch(url, data, other)

reLaunch会调用uni.reLaunch方法

属性 类型 必填 描述
url String 需要跳转的应用内非 tabBar 的页面的路径
data Objecet 参数对象
other Objecet 其他选项配置,如: success、fail...等

示例

router.reLaunch('/pages/test/index', {
	 name:'test' 
},{
	success:e=>{}
})
// 等同于
uni.reLaunch({
	url:'/pages/test/index?name=test',
	success:e=>{}
})

switchTab(url, other)

switchTab会调用uni.switchTab方法

属性 类型 必填 描述
url String 需要跳转的应用内非 tabBar 的页面的路径
other Objecet 其他选项配置,如: success、fail...等

示例

router.switchTab('/pages/test/index', {
	success:e=>{}
})
// 等同于
uni.switchTab({
	url:'/pages/test/index?name=test',
	success:e=>{}
})

back(delta, other)

switchTab会调用uni.switchTab方法

属性 类型 必填 默认值 描述
delta Number 1 需要跳转的应用内非 tabBar 的页面的路径
other Objecet 其他选项配置,如: success、fail...等

示例

router.back(1)
// 等同于
uni.navigateBack({
	delta: 1
})

getRoutes()

获取当前的页面栈 示例

router.getRoutes()
// 等同于
getCurrentPages()

route()

获取当前路由的实例 示例

router.route()

Readme

Keywords

Package Sidebar

Install

npm i uniapp-router

Weekly Downloads

0

Version

1.1.1

License

MIT

Unpacked Size

15.2 kB

Total Files

13

Last publish

Collaborators

  • aqua_neko