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 相关文章推荐
点击进行复制的JS代码实例
Aug 23 Javascript
jquery改变disabled的boolean状态的三种方法
Dec 13 Javascript
javascript使用正则表达式检测IP地址
Dec 03 Javascript
JavaScript监听和禁用浏览器回车事件实例
Jan 31 Javascript
JavaScript实现事件的中断传播和行为阻止方法示例
Jan 20 Javascript
layui弹出层效果实现代码
May 19 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
Jun 13 Javascript
AugularJS从入门到实践(必看篇)
Jul 10 Javascript
vue+web端仿微信网页版聊天室功能
Apr 30 Javascript
微信小程序的mpvue框架快速上手指南
May 15 Javascript
vue中 v-for循环的用法详解
Feb 19 Javascript
JavaScript中EventBus实现对象之间通信
Oct 18 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处理斐波那契数列非递归方法
2012/02/04 PHP
php实现求相对时间函数
2015/06/15 PHP
使用PHP实现下载CSS文件中的图片
2015/12/06 PHP
javascript web页面刷新的方法收集
2009/07/02 Javascript
ext combox 下拉框不出现自动提示,自动选中的解决方法
2010/02/24 Javascript
js和css写一个可以自动隐藏的悬浮框
2014/03/05 Javascript
jQuery 2.0.3 源码分析之core(一)整体架构
2014/05/27 Javascript
批量修改标签css样式以input标签为例
2014/07/31 Javascript
JQuery报错Uncaught TypeError: Illegal invocation的处理方法
2015/03/13 Javascript
jQuery实现返回顶部效果的方法
2015/05/29 Javascript
readonly和disabled属性的区别
2015/07/26 Javascript
jQuery Easyui 验证两次密码输入是否相等
2016/05/13 Javascript
JS制作类似选项卡切换的年历
2016/12/03 Javascript
浅谈Node.js:理解stream
2016/12/08 Javascript
javascript 单例模式详解及简单实例
2017/02/14 Javascript
JS数组去重(4种方法)
2017/03/27 Javascript
JS实现批量上传文件并显示进度功能
2017/06/27 Javascript
vue.js $refs和$emit 父子组件交互的方法
2017/12/20 Javascript
vue.js给动态绑定的radio列表做批量编辑的方法
2018/02/28 Javascript
ES6的解构赋值实例详解
2019/05/06 Javascript
详解Django中间件的5种自定义方法
2018/07/26 Python
python版本五子棋的实现代码
2018/12/11 Python
Python倒排索引之查找包含某主题或单词的文件
2019/11/13 Python
Python socket聊天脚本代码实例
2020/01/02 Python
Python matplotlib实时画图案例
2020/04/23 Python
Pycharm及python安装详细教程(图解)
2020/07/31 Python
CSS3弹性盒模型开发笔记(一)
2016/04/26 HTML / CSS
JBL英国官网:JBL UK
2018/07/04 全球购物
应用服务器有那些
2012/01/19 面试题
计算机应用专业毕业生求职信
2014/06/03 职场文书
2014年入党积极分子党校培训心得体会
2014/07/08 职场文书
学习优秀共产党员先进事迹思想报告
2014/09/17 职场文书
2014年图书室工作总结
2014/12/09 职场文书
同事欢送会致辞
2015/07/31 职场文书
2016感恩母亲节校园广播稿
2015/12/17 职场文书
python-for x in range的用法(注意要点、细节)
2021/05/10 Python