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 相关文章推荐
索趣科技的答案
Feb 07 Javascript
JavaScript Object的extend是一个常用的功能
Dec 02 Javascript
js function定义函数使用心得
Apr 15 Javascript
40款非常棒的jQuery 插件和制作教程(系列二)
Nov 02 Javascript
javascript数组的使用
Mar 28 Javascript
js 自定义个性下拉选择框示例
Aug 20 Javascript
IE下window.onresize 多次调用与死循环bug处理方法介绍
Nov 12 Javascript
JS中attr和prop属性的区别以及优先选择示例介绍
Jun 30 Javascript
javascript设计模式之单体模式学习笔记
Feb 15 Javascript
Vue注册组件命名时不能用大写的原因浅析
Apr 25 Javascript
vantUI 获得piker选中值的自定义ID操作
Nov 04 Javascript
一小时迅速入门Mybatis之bind与多数据源支持 Java API
Sep 15 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自定义错误用法示例
2016/09/28 PHP
PHP ADODB实现分页功能简单示例
2018/05/25 PHP
使用IE6看老赵的博客 jQuery初探
2010/01/17 Javascript
js实现点击左右按钮轮播图片效果实例
2015/01/29 Javascript
jQuery插件slick实现响应式移动端幻灯片图片切换特效
2015/04/12 Javascript
使用jquery.qrcode.js生成二维码插件
2016/10/17 Javascript
vue2.0嵌套路由实现豆瓣电影分页功能(附demo)
2017/03/13 Javascript
jquery将标签元素的高设为屏幕的百分比
2017/04/19 jQuery
浅谈Vue父子组件和非父子组件传值问题
2017/08/22 Javascript
基于JavaScript实现评论框展开和隐藏功能
2017/08/25 Javascript
javaScript强制保留两位小数的输入数校验和小数保留问题
2018/05/09 Javascript
Vue头像处理方案小结
2018/07/26 Javascript
jQuery实现鼠标移到某个对象时弹出显示层功能
2018/08/23 jQuery
vue中组件通信详解(父子组件, 爷孙组件, 兄弟组件)
2020/07/27 Javascript
Javascript Symbol原理及使用方法解析
2020/10/22 Javascript
vue单元格多列合并的实现
2020/11/26 Vue.js
使用python实现baidu hi自动登录的代码
2013/02/10 Python
python实现从文件中读取数据并绘制成 x y 轴图形的方法
2018/10/14 Python
Tensorflow实现神经网络拟合线性回归
2019/07/19 Python
python查看数据类型的方法
2019/10/12 Python
英国排名第一的在线宠物用品商店:Monster Pet Supplies
2018/05/20 全球购物
Ray-Ban雷朋西班牙官网:全球领先的太阳眼镜品牌
2018/11/28 全球购物
Schecker荷兰:狗狗用品和配件
2019/06/06 全球购物
博朗(Braun)俄罗斯官方商店:德国小家电品牌
2019/09/24 全球购物
Habitat家居英国官方网站:沙发、家具、照明、厨房和户外
2019/12/12 全球购物
限量版运动鞋和街头服饰:TheDrop
2020/09/06 全球购物
澳大利亚电商Catch新西兰站:Catch.co.nz
2020/05/30 全球购物
Ibatis如何使用动态表名
2015/07/12 面试题
2014党员学习习主席讲话思想汇报
2014/09/15 职场文书
光荣之路观后感
2015/06/12 职场文书
高一军训感想
2015/08/07 职场文书
安全教育主题班会总结
2015/08/14 职场文书
2016中秋晚会开幕词
2016/03/03 职场文书
竞选稿之小学班干部
2019/10/31 职场文书
nginx location优先级的深入讲解
2021/03/31 Servers
浅析JavaScript中的变量提升
2022/06/01 Javascript