router
页面跳转
属性名 | 说明 | 类型 |
---|---|---|
tabs | 底部导航 | object[] |
routes | 路由列表 | object[] |
query | 跳转参数(地址栏) | object |
params | 跳转参数(缓存) | object |
pages | 自定义页面路径 | object |
currentPage | 当前页面信息 | function |
path | 当前路由路径 | string |
info | 当前路由信息 | function |
push | 路由跳转 | function |
back | 后退 | function |
callMethod | 执行当前页面的某个方法 | function |
isFirstPage | 页面栈长度是否只有 1 | function |
isCurrentPage | 是否当前页 | function |
home | 回到首页 | function |
switchTab | 跳转 Tab 页 | function |
isTab | 是否是 Tab 页 | function |
login | 去登陆 | function |
nextLogin | 登录成功后操作 | function |
--- | --- |
使用
- 方式一
ts
import { router } from "/@/cool";
- 方式二
ts
import { useCool } from "/@/cool";
const { router } = useCool();
push
ts
router.push("/pages/goods/list");
ts
router.push({
path: "/pages/goods/detail",
query: {
id: 1,
},
});
router.query(); // { id }
ts
router.push({
path: "/pages/goods/detail",
params: {
data: {},
},
});
router.params(); // { data }
callMethod
执行当前页面的某个方法。
如:监听消息并刷新页面,直接触发页面的 refresh 方法,而不是在每个页面加事件监听
html
<template>
<text>Demo</text>
</template>
<script setup>
function refresh(params) {}
defineExpose({
refresh,
});
</script>
ts
router.callMethod("refresh", { page: 1 });
isTab
检测是否 Tab 页面,返回 boolean
ts
router.isTab("/pages/index/home");
nextLogin
跳转到重定向登录前的页面,并触发 afterLogin
事件
ts
router.nextLogin();