vue实现路由切换改变title功能


Posted in Javascript onMay 28, 2019

由于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功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
[Web]防止用户复制页面内容和另存页面的方法
Feb 06 Javascript
基于JQuery的密码强度验证代码
Mar 01 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
May 18 Javascript
JQuery UI的拖拽功能实现方法小结
Mar 14 Javascript
jquery动态改变onclick属性导致失效的问题解决方法
Dec 04 Javascript
让checkbox不选中即将选中的checkbox不选中
Jul 11 Javascript
javascript复制粘贴与clipboardData的使用
Oct 16 Javascript
JS实现最简单的冒泡排序算法
Feb 15 Javascript
关于react中组件通信的几种方式详解
Dec 10 Javascript
Vue2.0 实现歌手列表滚动及右侧快速入口功能
Aug 08 Javascript
VUE:vuex 用户登录信息的数据写入与获取方式
Nov 11 Javascript
微信小程序动态设置图片大小的方法
Nov 21 Javascript
Vue 无限滚动加载指令实现方法
May 28 #Javascript
vue实现搜索过滤效果
May 28 #Javascript
微信小程序 image组件遇到的问题
May 28 #Javascript
vue实现搜索功能
May 28 #Javascript
Bootstrap 时间日历插件bootstrap-datetimepicker配置与应用小结
May 28 #Javascript
如何实现双向绑定mvvm的原理实现
May 28 #Javascript
vue实现带复选框的树形菜单
May 27 #Javascript
You might like
php eval函数用法总结
2012/10/31 PHP
PHP往XML中添加节点的方法
2015/03/12 PHP
php邮箱地址正则表达式验证
2015/11/13 PHP
Javascript !!的作用
2008/12/04 Javascript
两个select之间option的互相添加操作(jquery实现)
2009/11/12 Javascript
JS 图片缩放效果代码
2010/06/09 Javascript
发布一个基于javascript的动画类 Fx.js
2010/11/05 Javascript
JS通过相同的name进行表格求和代码
2013/08/18 Javascript
javascript中clipboardData对象用法详解
2015/05/13 Javascript
Javascript获取随机数的实现方法
2016/06/22 Javascript
JS中的hasOwnProperty()和isPrototypeOf()属性实例详解
2016/08/11 Javascript
Vue中this.$router.push参数获取方法
2018/02/27 Javascript
JavaScript满天星导航栏实现方法
2018/03/08 Javascript
解决vue props 拿不到值的问题
2018/09/11 Javascript
ElementUI Tag组件实现多标签生成的方法示例
2019/07/08 Javascript
vue3.0 上手体验
2020/09/21 Javascript
Vue3配置axios跨域实现过程解析
2020/11/25 Vue.js
[01:35]辉夜杯战队访谈宣传片—LGD
2015/12/25 DOTA
[00:47]DOTA2荣耀之路6:天火,天火!
2018/05/30 DOTA
django中的setting最佳配置小结
2017/11/21 Python
利用Python暴力破解zip文件口令的方法详解
2017/12/21 Python
python 批量解压压缩文件的实例代码
2019/06/27 Python
Django接收自定义http header过程详解
2019/08/23 Python
python对常见数据类型的遍历解析
2019/08/27 Python
keras tensorflow 实现在python下多进程运行
2020/02/06 Python
Python绘制动态水球图过程详解
2020/06/03 Python
英国领先的葡萄酒专家:Majestic Wine
2017/05/30 全球购物
英国领先的品牌珠宝和配件供应商:Acotis Jewellery
2018/03/07 全球购物
什么是表空间(tablespace)和系统表空间(System tablespace)
2013/02/25 面试题
给校长的建议书600字
2014/05/15 职场文书
名人演讲稿范文
2014/09/16 职场文书
2015年综治宣传月活动总结
2015/03/25 职场文书
最感人的道歉情书
2015/05/12 职场文书
2016年领导干部正风肃纪心得体会
2015/10/09 职场文书
python实现监听键盘
2021/04/26 Python
Github 使用python对copilot做些简单使用测试
2022/04/14 Python