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 相关文章推荐
THREE.JS入门教程(5)你应当知道的十件事
Jan 24 Javascript
node.js使用require()函数加载模块
Nov 26 Javascript
jQuery Mobile操作HTML5的常用函数总结
May 17 Javascript
jquery取消事件冒泡的三种方法(推荐)
May 28 Javascript
简单的jQuery拖拽排序效果的实现(增强动态)
Feb 09 Javascript
利用Three.js如何实现阴影效果实例代码
Sep 26 Javascript
jQuery使用ajax传递json对象到服务端及contentType的用法示例
Mar 12 jQuery
vue项目中使用bpmn为节点添加颜色的方法
Apr 30 Javascript
js实现验证码功能
Jul 24 Javascript
解决vue中axios设置超时(超过5分钟)没反应的问题
Sep 04 Javascript
jenkins自动构建发布vue项目的方法步骤
Jan 04 Vue.js
如何将JavaScript将数组转为树形结构
Jun 02 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
超强分页类2.0发布,支持自定义风格,默认4种显示模式
2007/01/02 PHP
利用discuz实现PHP大文件上传应用实例代码
2008/11/14 PHP
对squid中refresh_pattern的一些理解和建议
2009/04/17 PHP
php 调试利器debug_print_backtrace()
2012/07/23 PHP
php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解决方法
2014/11/04 PHP
如何把php5.3版本升级到php5.4或者php5.5
2015/07/31 PHP
PHP实现批量检测网站是否能够正常打开的方法
2016/08/23 PHP
找到一点可怜的关于dojo资料,谢谢作者!
2006/12/06 Javascript
JQuery 写的个性导航菜单
2009/12/24 Javascript
页面回到顶部的三种实现(锚标记,js)
2012/10/01 Javascript
jQuery $.data()方法使用注意细节
2012/12/31 Javascript
nodejs调用cmd命令实现复制目录
2015/05/04 NodeJs
JS实现黑客帝国文字下落效果
2015/09/01 Javascript
Bootstrap布局组件应用实例讲解
2016/02/17 Javascript
Angular-Touch库用法示例
2016/12/22 Javascript
在 Angular2 中实现自定义校验指令(确认密码)的方法
2017/01/23 Javascript
js实现打地鼠小游戏
2017/02/13 Javascript
vue中SPA单页面应用程序详解
2017/11/07 Javascript
微信小程序实现红包功能(后端PHP实现逻辑)
2018/07/11 Javascript
antd Upload 文件上传的示例代码
2018/12/14 Javascript
vue-i18n实现中英文切换的方法
2020/07/06 Javascript
[16:19]教你分分钟做大人——风暴之灵
2015/03/11 DOTA
pyramid配置session的方法教程
2013/11/27 Python
python删除文件示例分享
2014/01/28 Python
Python执行时间的计算方法小结
2017/03/17 Python
python3学习笔记之多进程分布式小例子
2018/02/13 Python
Python列表list操作相关知识小结
2020/01/29 Python
详解Python的三种拷贝方式
2020/02/11 Python
CSS3 对过渡(transition)进行调速以及延时
2020/10/21 HTML / CSS
canvas绘制太极图的实现示例
2020/04/29 HTML / CSS
美国网上鞋子零售商:Dr. Scholl’s Shoes
2017/11/17 全球购物
main 主函数执行完毕后,是否可能会再执行一段代码,给出说明
2012/12/05 面试题
党员学习十八大感想
2014/01/17 职场文书
奥运会口号
2014/06/13 职场文书
2014年国庆节演讲稿
2014/09/19 职场文书
第一军规观后感
2015/06/12 职场文书