首页 > 其他分享 >vue-router全局导航守卫

vue-router全局导航守卫

时间:2022-11-20 22:26:40浏览次数:40  
标签:vue const title 守卫 meta import router path

实现组件跳转时,浏览器标题更新

①router的index.js文件中

routes配置添加meta属性   ②router.beforeEach方法
import Vue from 'vue'
import VueRouter from 'vue-router'
const Home = () => import('../components/Home')
const HomeNews = () => import('../components/HomeNews')
const HomeMessage = () => import('../components/HomeMessage')

const About = () => import('../components/About')
const User = () => import('../components/User')
const Profile = ()=> import('../components/Profile')

//1.通过Vue.use(插件),安装插件
Vue.use(VueRouter)

//2.创建VueRouter对象
const routes = [
    {
     path:'/',
     //重定向到home
     redirect: '/home'
    },
    {
     path:'/home',
     component: Home,
     meta: {
        title: '首页'
     },
     children: [
        {
            path: '',//设置嵌套路由默认路径
            redirect: 'message'
        },
        {
            path: 'news',//子组件不能加/
            component: HomeNews
        },
        {
            path: 'message',
            component: HomeMessage
        }
     ]
    },
    {
        path:'/about',
        component: About,
        meta: {
            title: '关于'
         },    
    },
    {
        path: '/user/:userName',
        component: User,
        meta: {
            title: '用户'
         },
    },
    {
        path: '/profile',
        component: Profile,
        meta: {
            title: '档案'
         },
    }
]

const router = new VueRouter({
    mode: 'history',//使用history模式,去除url中的#符号(hash模式)
    //配置路由和组件之间的应用关系
    routes
})
router.beforeEach((to, from, next) => {
    document.title = to.matched[0].meta.title
    console.log("---"+JSON.stringify(to))
    next()
})

//3.将router对象传入到vue实例
export default router

 

 

 

 

 

标签:vue,const,title,守卫,meta,import,router,path
From: https://www.cnblogs.com/ixtao/p/16909783.html

相关文章

  • Vue3 reactive 之源码的实现
    Reflect.get()方法与从对象(target[propertyKey])中读取属性类似,但它是通过一个函数执行来操作的。exportconstreactive=<Textendsobject>(target:T)=>{......
  • Vue3组件Props属性名不能与Setup()中变量名不可重复
    npmrunlint,显示错误点:30:9   error Gettingavaluefromthe`props`inrootscopeof`setup()`willcausethevaluetolosereactivity vue/no-setup-pr......
  • Vue
    1、Vue是一套前端框架,免除原生JavaScript的DOM操作,简化书写。2、基于MVVM(Model-View-ViewModel)思想,实现数据的双向绑定,将编程的关注点放在数据上。3、官网:https://cn.vue......
  • Vue笔记 - 样式穿透原理及使用方法
    样式穿透目录样式穿透1.为什么需要样式穿透1.1为什么样式会失效2.如何使用样式穿透2.1实例1.为什么需要样式穿透在开发中引入了第三方组件库(如element-ui),但又想......
  • vue组件中插入二维码的操作
    vue组件中插入二维码的操作 引入在public/index.html的head标签中引入:<scriptsrc="https://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script>......
  • Vue3笔记 - 浅析Vue2和Vue3响应式原理及两者差异
    浅析Vue2和Vue3响应式原理及两者差异目录浅析Vue2和Vue3响应式原理及两者差异vue2的响应式vue2中为数据添加响应式模拟Vue2实现响应式原理vue3的响应式vue3中为数据添加响......
  • Uncaught ReferenceError: Vue is not defined(之二)
    背景最近开发的一个项目,前段时间开发过程中还好好的,最近一次打包部署后,浏览器访问一直是打不开:打开控制台,看到的一个报错如下: 作为一个前端不太熟练的后端研发,我在网上......
  • Uncaught ReferenceError: Vue is not defined(之一)
    报错信息UncaughtReferenceError-Vueisnotdefined报错代码示例<body><divid="app"><span>{{username}}</span></div><scriptsrc="https://cdn.......
  • vue3和vue2的区别
    1、vue3完全支持typescript,提高项目的可维护性2、Fragment:模板更简单。vue3用到了一个虚拟的父级,可以多个根节点domvue2只能有一个父级节点3、vue2用newVue();vu......
  • springboot+vue 前后端分离项目对 token 的无痛刷新
    前言最近在做一个系统时,使用了token令牌来进行前后端交互的权限认证。token一般用于前端向后端发起请求时的权限认证。用户登录自己的账号后,会得到一个token,放在每......