123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- // //创建一个路由器
- import { createRouter, createWebHashHistory} from "vue-router";
- import { getToken2} from "../utils/token";
- const router = createRouter({
- history: createWebHashHistory(),
- routes: [
- {
- path: '/',
- name:'启动页',
- component: () => import('@/views/openpage.vue'),
- meta:{
- keepAlive:false, // 需要缓存
- title: '启动页'
- },
- children:[
- {
- path: '/home/newfile',
- name: '首页',
- component: () => import('@/views/home/newfile.vue'),
- },
- {
- path: '/home/querylist',
- name: '打开',
- component: () => import('@/views/home/querylist.vue'),
- },
- {
- path: '/home/savefile',
- name: 'savefile',
- component: () => import('@/views/home/savefile.vue'),
- }
- ]
- },
- {
- path: '/index',
- name:'主页1',
- component: () => import('@/views/index.vue'),
- meta:{
- keepAlive:false, // 需要缓存
- title: '主页1'
- },
- },
- {
- path: '/home',
- name:'主页',
- component: () => import('@/views/home.vue'),
- meta:{
- keepAlive:false, // 需要缓存
- title: '主页'
- },
- },
- {
- path: '/login',
- name: 'login',
- component: () => import('@/views/login/index.vue'),
- meta: {
- keepAlive: false,
- title: '登录'
- }
- },
- {
- path: '/register',
- name: 'register',
- component: () => import('@/views/login/register.vue'),
- meta: {
- keepAlive: false,
- title: '注册'
- }
- },
- {
- path: '/vueflow',
- name:'vueflow',
- component: () => import('@/views/vueflow/index.vue'),
- meta:{
- keepAlive:false, // 需要缓存
- title: 'vueflow'
- },
- },
- {
- path: '/demo',
- name:'demo',
- component: () => import('@/views/vueflow/demo.vue'),
- meta:{
- keepAlive:false, // 需要缓存
- title: 'vueflow'
- },
- },
-
- ]
- })
- //修改动态网页标题 beforeEach 导航钩子,路由改变前触发
- router.beforeEach((to, from, next) => {
- const token = getToken2(); // 获取 token
-
- // 定义不需要登录的白名单路由
- const whiteList = ['login', 'register'];
-
- // 如果用户有 token,直接放行
- if (token) {
- document.title = to.name || '默认标题'; // 设置页面标题
- next();
- }
- // 如果没有 token,并且目标页面不在白名单里,跳转到登录页
- else if (!whiteList.includes(to.name)) {
- next({ name: 'login' });
- }
- else {
- document.title = to.name || '默认标题';
- next();
- }
- });
- // afterEach 不需要 next 参数
- router.afterEach(() => {
- window.scrollTo(0, 0); // 页面滚动到顶部
- });
- export default router;
|