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 for循环设法提高性能
Feb 24 Javascript
写得不错的jquery table鼠标经过变色代码
Sep 27 Javascript
node.js中的fs.fchown方法使用说明
Dec 16 Javascript
调试JavaScript中正则表达式中遇到的问题
Jan 27 Javascript
JQuery选中checkbox方法代码实例(全选、反选、全不选)
Apr 27 Javascript
深入理解JavaScript中的对象
Jun 04 Javascript
js阻止浏览器默认行为触发的通用方法(推荐)
May 15 Javascript
Bootstrap CSS组件之面包屑导航(breadcrumb)
Dec 17 Javascript
angular2模块和共享模块详解
Apr 08 Javascript
简单实现vue中的依赖收集与响应的方法
Feb 18 Javascript
JavaScript 预解析的4种实现方法解析
Sep 03 Javascript
如何使用vue slot创建一个模态框的实例代码
May 24 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
给多个地址发邮件的类
2006/10/09 PHP
一些常用的php函数
2006/12/06 PHP
在SAE上搭建最新wordpress的方法
2014/12/21 PHP
PHP以json或xml格式返回请求数据的方法
2018/05/31 PHP
jquery选择器(常用选择器说明)
2010/09/28 Javascript
jquery 笔记 事件
2011/11/02 Javascript
jQuery获取节点和子节点文本的方法
2014/07/22 Javascript
jQuery的one()方法用法实例
2015/01/19 Javascript
jQuery定义背景动态切换效果的方法
2015/03/23 Javascript
js 基础篇必看(点击事件轮播图的简单实现)
2016/08/20 Javascript
js中setTimeout的妙用--防止循环超时
2017/03/06 Javascript
JavaScript中的工厂函数(推荐)
2017/03/08 Javascript
JS排序之冒泡排序详解
2017/04/08 Javascript
JS正则表达式验证中文字符
2017/05/08 Javascript
使用jQuery实现两个div中按钮互换位置的实例代码
2017/09/21 jQuery
解决webpack多页面内存溢出的方法示例
2019/10/08 Javascript
[03:40]2014DOTA2国际邀请赛 B神专访:躲箭真的很难
2014/07/13 DOTA
python中常用检测字符串相关函数汇总
2015/04/15 Python
python如何使用正则表达式的前向、后向搜索及前向搜索否定模式详解
2017/11/08 Python
django表单实现下拉框的示例讲解
2018/05/29 Python
Ubuntu18.04下python版本完美切换的解决方法
2019/06/14 Python
python字符串替换第一个字符串的方法
2019/06/26 Python
python3 pillow模块实现简单验证码
2019/10/31 Python
基于python cut和qcut的用法及区别详解
2019/11/22 Python
Spring Boot中使用IntelliJ IDEA插件EasyCode一键生成代码详细方法
2020/03/20 Python
keras的三种模型实现与区别说明
2020/07/03 Python
Python爬虫实现selenium处理iframe作用域问题
2021/01/27 Python
常用的四种CSS透明属性介绍
2014/04/12 HTML / CSS
澳大利亚在线生活方式商店:Mytopia
2018/07/08 全球购物
博柏利美国官方网站:Burberry美国
2020/11/19 全球购物
如何转换一个字符串到enum值
2014/04/12 面试题
高中毕业生自我鉴定范文
2013/09/26 职场文书
奖学金自我鉴定范文
2013/10/03 职场文书
财务总经理岗位职责
2014/02/16 职场文书
党员入党表决心的话
2014/03/11 职场文书
音乐剧猫观后感
2015/06/04 职场文书