vue 获取当前路由的title_vue实现路由切换改变title功能

本文介绍了在Vue单页应用中如何利用vue-router的导航守卫实现路由切换时页面标题的动态更新,通过全局后置守卫`router.afterEach`在每次导航完成时设置`document.title`,并提供了具体的实现代码示例。
摘要由CSDN通过智能技术生成

由于vue项目通常是单页应用,因此在入口文件index.html只有一个title,单页所展示的若干页面只是随着路由的切换而在同一个index.html上不同的渲染而已,因此此时的title属性是不会随着页面的切换而变更的

那么想实现路由切换title变换可以通过vue-router的导航守卫来实现,最简单的的目录结构可如下所示

├── index.html

├── main.js

├── api

│ └── ... # 抽取出API请求

├── common

│ └── constants.js //title值

├── components

│ ├── HelloWorld.vue

│ ├── Test.vue

│ ├── User.vue

│ └── ...

├── router

│ └── index.js

下面主要就是vue-router的内容了,其他页面级别的内容无关紧要

router/index.js内容如下:

import Vue from 'vue'

import Router from 'vue-router'

import constants from '../common/constants'

Vue.use(Router)

const router = new Router({

routes: [{

path: '/',

name: 'HelloWorld',

component: reslove => require(['../components/HelloWorld'], reslove)

},{

path: '/hello',

name: 'hello',

props: {name: 'garrett'},

component: reslove => require(['../components/Test'], reslove)

},{

path: '/user',

name: 'user',

component: reslove => require(['../components/User'], reslove)

},{

path: '*',

redirect: {name: 'hello'}

}]

})

//导航后置守卫,可以在确定导航到目标页面时再更改title

router.afterEach((to, from) => {

window.document.title = constants[to.name];

})

export default router;

在这里使用全局后置守卫来对路由切换进行统一操作,全局前置守卫在正常情况下也可以,但是如果出现导航一半终止掉,会出现页面没有被渲染为目标导航页面,但是title以及被替换掉了,因此这里使用全局后置守卫是相对稳妥的,由上面可以看出实际的关键代码也就三行,其他照旧

constants.js的内容如下:

export default{

HelloWorld: '首页',

hello: '欢迎页',

user: '用户页'

}

只是简单将对象导出

总结

以上所述是小编给大家介绍的vue实现路由切换改变title功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值