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 相关文章推荐
HTML IMG标签 onload 内存溢出导致浏览器CPU占用过高
Mar 09 Javascript
js 幻灯片的实现
Dec 06 Javascript
js获取元素到文档区域document的(横向、纵向)坐标的两种方法
May 17 Javascript
javascript中style.left和offsetLeft的用法说明
Mar 07 Javascript
JavaScript indexOf方法入门实例(计算指定字符在字符串中首次出现的位置)
Oct 17 Javascript
jQuery回调函数的定义及用法实例
Dec 23 Javascript
JS基于clipBoard.js插件实现剪切、复制、粘贴
May 03 Javascript
JavaScript正则表达式校验与递归函数实际应用实例解析
Aug 04 Javascript
基于node.js之调试器详解
Aug 22 Javascript
解决JQuery全选/反选第二次失效的问题
Oct 11 jQuery
vue 运用mock数据的示例代码
Nov 07 Javascript
详解基于Vue cli生成的Vue项目的webpack4升级
Jun 19 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
WordPress中对访客评论功能的一些优化方法
2015/11/24 PHP
js中top、clientTop、scrollTop、offsetTop的区别 文字详细说明版
2011/01/08 Javascript
html文件中jquery与velocity变量中的$冲突的解决方法
2013/11/01 Javascript
jQuery设置和移除文本框默认值的方法
2015/03/09 Javascript
jQuery获得包含margin的outerWidth和outerHeight的方法
2015/03/25 Javascript
自定义刻度jQuery进度条及插件
2015/09/02 Javascript
使用javascript插入样式
2016/03/14 Javascript
jQuery实现选项联动轮播效果【附实例】
2016/04/19 Javascript
JQuery Ajax WebService传递参数的简单实例
2016/11/02 Javascript
详解Angular2响应式表单
2017/06/14 Javascript
easyui datagrid 表格中操作栏 按钮图标不显示的解决方法
2017/07/27 Javascript
Spring Boot/VUE中路由传递参数的实现代码
2018/03/02 Javascript
Vue与Node.js通过socket.io通信的示例代码
2018/07/25 Javascript
详解解决Vue相同路由参数不同不会刷新的问题
2018/10/12 Javascript
electron-vue利用webpack打包实现多页面的入口文件问题
2019/05/12 Javascript
使用jquery-easyui的布局layout写后台管理页面的代码详解
2019/06/19 jQuery
js中的this的指向问题详解
2019/08/29 Javascript
jquery实现有过渡效果的tab切换
2020/07/17 jQuery
[49:08]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
9种python web 程序的部署方式小结
2014/06/30 Python
用Python展示动态规则法用以解决重叠子问题的示例
2015/04/02 Python
python实现按行切分文本文件的方法
2016/04/18 Python
python中in在list和dict中查找效率的对比分析
2018/05/04 Python
python在TXT文件中按照某一字符串取出该字符串所在的行方法
2018/12/10 Python
python基于pdfminer库提取pdf文字代码实例
2019/08/15 Python
简单瞅瞅Python vars()内置函数的实现
2019/09/27 Python
Python面向对象程序设计之静态方法、类方法、属性方法原理与用法分析
2020/03/23 Python
Pyecharts 动态地图 geo()和map()的安装与用法详解
2020/03/25 Python
Python实现打包成库供别的模块调用
2020/07/13 Python
python 无损批量压缩图片(支持保留图片信息)的示例
2020/09/22 Python
澳大利亚排名第一的在线酒类商店:MyBottleShop
2018/04/26 全球购物
酒店销售主管岗位职责
2014/01/04 职场文书
社区服务活动报告
2015/02/05 职场文书
读《工匠精神》有感:热爱工作,精益求精
2019/12/28 职场文书
Vue中foreach数组与js中遍历数组的写法说明
2021/06/05 Vue.js
iSCSI服务器CHAP双向认证配置
2022/04/01 Servers