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 27 Javascript
js动态创建表格,删除行列的小例子
Jul 20 Javascript
Javascript中的关键字和保留字整理
Oct 16 Javascript
php+ajax+jquery实现点击加载更多内容
May 03 Javascript
AngularJS中实现动画效果的方法
Jul 28 Javascript
实现React单页应用的方法详解
Aug 02 Javascript
js仿拉勾网首页穿墙广告效果
Mar 08 Javascript
浅谈Node.js轻量级Web框架Express4.x使用指南
May 03 Javascript
jquery处理checkbox(复选框)是否被选中实例代码
Jun 12 jQuery
Layui数据表格跳转到指定页的实现方法
Sep 05 Javascript
小程序实现日历左右滑动效果
Oct 21 Javascript
Vue 2.0双向绑定原理的实现方法
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中的mb_detect_encoding函数使用方法
2015/08/18 PHP
使用PHPMailer发送邮件实例
2017/02/15 PHP
PHP去除空数组且数组键名重置的讲解
2019/02/28 PHP
php DES加密算法实例分析
2019/09/18 PHP
JS多物体 任意值 链式 缓冲运动
2012/08/10 Javascript
JavaScript在多浏览器下for循环的使用方法
2012/11/07 Javascript
JQuery+Ajax无刷新分页的实例代码
2014/02/08 Javascript
js实现回放拖拽轨迹从过程上进行分析
2014/06/26 Javascript
JS 使用for循环遍历子节点查找元素
2014/09/06 Javascript
JavaScript中的console.profile()函数详细介绍
2014/12/29 Javascript
简介JavaScript中setUTCSeconds()方法的使用
2015/06/12 Javascript
node.js文件上传处理示例
2016/10/27 Javascript
JS简单生成随机数(随机密码)的方法
2017/05/11 Javascript
BootStrap selectpicker后台动态绑定数据
2017/06/01 Javascript
解决vue单页路由跳转后scrollTop的问题
2018/09/03 Javascript
vue 监听某个div垂直滚动条下拉到底部的方法
2018/09/15 Javascript
js实现数字滚动特效
2019/12/16 Javascript
webpack+vue.js构建前端工程化的详细教程
2020/05/10 Javascript
利用PHP实现递归删除链表元素的方法示例
2020/10/23 Javascript
javascript代码实现简易计算器
2021/01/25 Javascript
python使用urllib模块开发的多线程豆瓣小站mp3下载器
2014/01/16 Python
Python常见格式化字符串方法小结【百分号与format方法】
2016/09/18 Python
python中redis的安装和使用
2016/12/04 Python
python修改linux中文件(文件夹)的权限属性操作
2020/03/05 Python
红色康乃馨酒店:Red Carnation Hotels
2017/06/22 全球购物
美国专业汽车音响和移动电子产品零售商:Car Toys
2019/05/13 全球购物
买卖协议书范本
2014/04/21 职场文书
初中学校军训方案
2014/05/09 职场文书
常务副总经理任命书
2014/06/05 职场文书
上海世博会志愿者口号
2014/06/17 职场文书
北京申奥口号
2014/06/19 职场文书
带刀到教室的检讨书
2014/10/04 职场文书
地方白酒代理协议书
2014/10/25 职场文书
剑指Offer之Java算法习题精讲二叉树的构造和遍历
2022/03/21 Java/Android
vue自定义右键菜单之全局实现
2022/04/09 Vue.js
Rust中的Struct使用示例详解
2022/08/14 Javascript