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之querySelector和querySelectorAll使用说明
Oct 09 Javascript
js根据给定的日期计算当月有多少天实现思路及代码
Feb 25 Javascript
一种新的javascript对象创建方式Object.create()
Dec 28 Javascript
AngularJS中使用HTML5手机摄像头拍照
Feb 22 Javascript
JavaScript的Ext JS框架中的GridPanel组件使用指南
May 21 Javascript
最好用的Bootstrap fileinput.js文件上传组件
Dec 12 Javascript
Angularjs验证用户输入的字符串是否为日期时间
Jun 01 Javascript
解决vue点击控制单个样式的问题
Sep 05 Javascript
JavaScript实现获取两个排序数组的中位数算法示例
Feb 26 Javascript
新手如何快速理解js异步编程
Jun 24 Javascript
javascript面向对象三大特征之继承实例详解
Jul 24 Javascript
Vue作用域插槽实现方法及作用详解
Jul 08 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 preg_match_all结合str_replace替换内容中所有img
2008/10/11 PHP
PHP MVC模式在网站架构中的实现分析
2010/03/04 PHP
利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法
2011/12/19 PHP
php备份数据库类分享
2015/04/14 PHP
php使用指定字符列表生成随机字符串的方法
2015/04/18 PHP
php示例详解Constructor Prototype Pattern 原型模式
2015/10/15 PHP
总结一些js自定义的函数
2006/08/05 Javascript
Jquery插件 easyUI属性汇总
2011/01/19 Javascript
结合JQ1.9通过js正则判断各种浏览器版本的方法
2013/12/30 Javascript
JavaScript保留两位小数的2个自定义函数
2014/05/05 Javascript
jquery ajax请求方式与提示用户正在处理请稍等
2014/09/01 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
2015/12/17 Javascript
JavaScript中setTimeout的那些事儿
2016/11/14 Javascript
jQuery解析返回的xml和json方法详解
2017/01/05 Javascript
微信小程序 scroll-view隐藏滚动条详解
2017/01/16 Javascript
如何使用vuejs实现更好的Form validation?
2017/04/07 Javascript
详解ES6中的代理模式——Proxy
2018/01/08 Javascript
解决js相同的正则多次调用test()返回的值却不同的问题
2018/10/10 Javascript
微信小程序sessionid不一致问题解决
2019/08/30 Javascript
Python爬虫:通过关键字爬取百度图片
2017/02/17 Python
用Python配平化学方程式的方法
2019/07/20 Python
Python类的动态绑定实现原理
2020/03/21 Python
Python连接Hadoop数据中遇到的各种坑(汇总)
2020/04/14 Python
python中的插入排序的简单用法
2021/01/19 Python
python 高阶函数简单介绍
2021/02/19 Python
css3.0 图形构成实例练习二
2013/03/19 HTML / CSS
video下autoplay属性无效的解决方法(添加muted属性)
2020/05/19 HTML / CSS
采用专利算法搜索最廉价的机票:CheapAir
2016/09/10 全球购物
Tom Dixon官网:英国照明及家具设计和制造公司
2019/03/01 全球购物
Linux的文件类型
2012/03/07 面试题
广告学专业毕业生自荐信
2013/09/24 职场文书
中秋节国旗下演讲稿
2014/09/13 职场文书
群众路线四风自我剖析材料
2014/10/08 职场文书
2014年小学体育工作总结
2014/12/11 职场文书
三年级学生评语大全
2014/12/26 职场文书
《艾尔登法环》发布最新「战技」宣传片
2022/04/03 其他游戏