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 相关文章推荐
Javascript 写的简单进度条控件
Jan 22 Javascript
JQuery为页面Dom元素绑定事件及解除绑定方法
Apr 23 Javascript
javascript实现的HashMap类代码
Jun 27 Javascript
jQuery+Ajax+PHP弹出层异步登录效果(附源码下载)
May 27 Javascript
JS中Array数组学习总结
Jan 18 Javascript
简单实现JS上传图片预览功能
Apr 14 Javascript
js下拉菜单生成器dropMenu使用方法详解
Aug 01 Javascript
Vue数据双向绑定的深入探究
Nov 27 Javascript
Vue 引入AMap高德地图的实现代码
Apr 29 Javascript
vue响应式更新机制及不使用框架实现简单的数据双向绑定问题
Jun 27 Javascript
JavaScript Event Loop相关原理解析
Jun 10 Javascript
JSON stringify方法原理及实例解析
Oct 23 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简单命令代码集锦
2007/09/24 PHP
深入php-fpm的两种进程管理模式详解
2013/06/03 PHP
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
2013/06/18 PHP
项目中应用Redis+Php的场景
2016/05/22 PHP
给moz-firefox下添加IE方法和属性
2007/04/10 Javascript
Ajax执行顺序流程及回调问题分析
2012/12/10 Javascript
Javascript简单实现可拖动的div
2013/10/22 Javascript
js实现网页抽奖实例
2015/08/05 Javascript
JS实现仿腾讯微博无刷新删除微博效果代码
2015/10/16 Javascript
javascript实现tab切换的四种方法
2015/11/05 Javascript
CSS或者JS实现鼠标悬停显示另一元素
2016/01/22 Javascript
详解JavaScript权威指南之对象
2016/09/27 Javascript
JS中使用 after 伪类清除浮动实例
2017/03/01 Javascript
jQuery插件HighCharts绘制简单2D柱状图效果示例【附demo源码】
2017/03/21 jQuery
node.js多个异步过程中判断执行是否完成的解决方案
2017/12/10 Javascript
小程序组件传值和引入sass的方法(使用vant Weapp组件库)
2020/11/24 Javascript
Vue $attrs & inheritAttr实现button禁用效果案例
2020/12/07 Vue.js
Python实现简单的四则运算计算器
2016/11/02 Python
Python基于pyCUDA实现GPU加速并行计算功能入门教程
2018/06/19 Python
Python提取频域特征知识点浅析
2019/03/04 Python
关于python字符串方法分类详解
2019/08/20 Python
pygame实现俄罗斯方块游戏(基础篇2)
2019/10/29 Python
美国最佳选择产品网站:Best Choice Products
2019/05/27 全球购物
毕业自我鉴定
2013/11/05 职场文书
便利店投资的创业计划书
2014/01/12 职场文书
秦兵马俑教学反思
2014/02/07 职场文书
电子银行营销方案
2014/02/22 职场文书
广告传媒专业应届生求职信
2014/03/01 职场文书
加油口号大全
2014/06/13 职场文书
森林防火标语
2014/06/23 职场文书
2015年城市管理工作总结
2015/05/23 职场文书
正规借条模板
2015/05/26 职场文书
JavaScript 实现页面滚动动画
2021/04/24 Javascript
HashMap实现保存两个key相同的数据
2021/06/30 Java/Android
Go语言空白表示符_的实例用法
2021/07/04 Golang
python多次执行绘制条形图
2022/04/20 Python