uniapp 路由插件
在 uniapp 中,路由管理通常依赖于框架内置的页面跳转机制,但也可以通过插件或第三方库扩展功能。以下是几种常见的路由插件或方案:
uniapp 内置路由
uniapp 提供了原生的页面跳转方法,如 uni.navigateTo、uni.redirectTo、uni.reLaunch 和 uni.switchTab。这些方法足以满足基本的路由需求。
// 跳转到新页面
uni.navigateTo({
url: '/pages/detail/detail'
});
// 重定向页面
uni.redirectTo({
url: '/pages/home/home'
});
uni-simple-router
uni-simple-router 是一个专为 uniapp 设计的路由插件,提供了类似 Vue Router 的功能,支持动态路由、路由守卫等高级特性。
安装方式:
npm install uni-simple-router
配置示例:
import { createRouter } from 'uni-simple-router';
const router = createRouter({
routes: [
{ path: '/', name: 'home', component: () => import('@/pages/home/home') },
{ path: '/detail', name: 'detail', component: () => import('@/pages/detail/detail') }
]
});
// 使用路由跳转
router.push({ name: 'detail' });
uni-read-pages
uni-read-pages 是一个自动读取 uniapp 页面配置的工具,可以与 uni-simple-router 结合使用,动态生成路由表。
安装方式:
npm install uni-read-pages
配置示例:
const pages = require('uni-read-pages');
const { createRouter } = require('uni-simple-router');
const router = createRouter({
routes: pages.routes
});
自定义路由插件
如果需要更灵活的路由控制,可以自行封装路由插件。例如,通过全局混入(mixin)或拦截原生跳转方法实现路由守卫。
// 全局路由守卫示例
const routerGuard = {
install(Vue) {
Vue.mixin({
onLoad() {
// 页面加载时检查权限
if (!checkAuth()) {
uni.redirectTo({ url: '/pages/login/login' });
}
}
});
}
};
Vue.use(routerGuard);
注意事项
- uniapp 的路由基于文件系统,页面路径需与
pages.json中的配置一致。 - 使用第三方插件时需注意兼容性,尤其是多端(H5、小程序、App)适配问题。
- 路由守卫在小程序中可能受限,需测试目标平台的支持情况。
以上方案可根据项目需求选择,内置方法适合简单场景,而插件适合需要复杂路由管理的项目。







