vue router 通过路由来实现切换头部标题功能


Posted in Javascript onApril 24, 2019

在做单页面应用程序时,一般页面布局头尾两块都是固定在布局页面,中间为是路由入口。这时访问页面时头部标题不会变,该问题的解决方案如下:

通过采用组件内路由卫士(beforeRouterEnter、beforeRouterUpdate)与路由元信息(meta) 来实现更新头部标题信息。点击查看文档

beforeRouterEnter:第一次进入时调用。

beforeRouterUpdate:重复使用当前组件时调用。

效果图如下:

vue router 通过路由来实现切换头部标题功能

注意看页面标题与图标变换

 路由元信息(meta)配置

在路由元信息中配置页面标题,通过组件内路由卫士获取

const router = new Router({
  mode: 'history',
  base: process.env.BASE_URL,
  routes: [
    {
      path: "help",
      name: "help",
      meta: {
        title: "新手帮助"
      },
      component: () => import('./views/Help.vue')
    },
    {
      path: "page",
      name: "page",
      meta: {
        title: "宝贝信息"
      },
      component: () => import('./views/Page.vue')
    }
  ]
})

路由布局页面

 header 与 footer 是固定头尾, main为路由入口。 title为页面标题

<template>
  <div id="app">
    <header class="header">
      <button @click="back" class="t-xiaoxi iconfont" v-html="icon"></button>
      <h1 class="t-title">{{title}}</h1>
      <router-link to="/search" class="t-sousuo iconfont"></router-link>
    </header>
    <div class="main">
      <router-view></router-view>
    </div>
    <footer class="footer">


// ...
    </footer>
  </div>
</template>

在beforeRouteEnter、beforeRouteUpdate函数中获取路由元信息,并更新页面标题。

beforeRouteEnter:当第一次进入时,会被标题进行一次初始化操作

beforeRouteUpdate:当组件被重复调用时,执行更新操作。

<script>
  export default {
    name: "app",
    data() {
      return {
        title: "我的网站",
        url: '/',
        icon: ''
      }
    },
    methods: {
      back() {
        this.$router.go(this.url);
      },
      update(route) {
        [this.title, this.url, this.icon] = ["我的网站", '/', ''];
        if (!['', '/'].includes(route.path)) { // 判断是否根页面,用于切换标题与返回上一页或回到主页
          [this.title, this.url, this.icon] = [route.meta.title || "", '-1', ''];
        }
      }
    },
    beforeRouteEnter(to, from, next) {
      next(vm => { //回调函数,此时this指针不可用,可采用回调函数访问。
        vm.update(to);
      })
    },
    beforeRouteUpdate(to, from, next) {
      this.update(to);
      next();
    }
  };
</script>

总结

以上所述是小编给大家介绍的vue router 通过路由来实现切换头部标题功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
jquery 表格分页等操作实现代码(pagedown,pageup)
Apr 11 Javascript
浅谈JavaScript实现面向对象中的类
Dec 09 Javascript
JQuery实现级联下拉框效果实例讲解
Sep 17 Javascript
jQuery 利用$.ajax 时获取原生XMLHttpRequest 对象的方法
Aug 25 Javascript
jQuery EasyUI右键菜单实现关闭标签/选项卡
Oct 10 Javascript
JS判断是否为JSON对象及是否存在某字段的方法(推荐)
Nov 29 Javascript
树结构之JavaScript
Jan 24 Javascript
jQuery EasyUI之验证框validatebox实例详解
Apr 10 jQuery
原生js中ajax访问的实例详解
Sep 19 Javascript
ionic3+Angular4实现接口请求及本地json文件读取示例
Oct 11 Javascript
记React connect的几种写法(小结)
Sep 18 Javascript
vue+axios实现post文件下载
Sep 25 Javascript
js实现全选反选不选功能代码详解
Apr 24 #Javascript
使用vue2.6实现抖音【时间轮盘】屏保效果附源码
Apr 24 #Javascript
Vue源码解析之数据响应系统的使用
Apr 24 #Javascript
详解微信小程序文件下载--视频和图片
Apr 24 #Javascript
详解微信小程序之一键复制到剪切板
Apr 24 #Javascript
使用vue-cli3新建一个项目并写好基本配置(推荐)
Apr 24 #Javascript
vue-cli3使用 DllPlugin 实现预编译提升构建速度
Apr 24 #Javascript
You might like
php echo 输出字符串函数详解
2010/05/13 PHP
php模拟asp中的XmlHttpRequest实现http请求的代码
2011/03/24 PHP
解析PHP的session过期设置
2013/06/29 PHP
可以显示单图片,多图片ajax请求的ThickBox3.1类下载
2007/12/23 Javascript
JavaScript中OnLoad几种使用方法
2012/12/15 Javascript
Js base64 加密解密介绍
2013/10/11 Javascript
js获取时间(本周、本季度、本月..)
2013/11/22 Javascript
javascript实现动态加载CSS
2015/01/26 Javascript
IE中鼠标经过option触发mouseout的解决方法
2015/01/29 Javascript
jQuery+HTML5实现手机摇一摇换衣特效
2015/06/05 Javascript
jquery实现像栅栏一样左右滑出式二级菜单效果代码
2015/08/24 Javascript
JavaScript事件 &quot;事件对象&quot;的注意要点
2016/01/14 Javascript
jQuery隐藏和显示效果实现
2016/04/06 Javascript
BootStrap使用popover插件实现鼠标经过显示并保持显示框
2016/06/23 Javascript
移动端点击图片放大特效PhotoSwipe.js插件实现
2016/08/25 Javascript
Bootstrap基本组件学习笔记之下拉菜单(7)
2016/12/07 Javascript
jQuery实现可移动选项的左右下拉列表示例
2016/12/26 Javascript
yarn的使用与升级Node.js的方法详解
2017/06/04 Javascript
微信小程序开发教程之增加mixin扩展
2017/08/09 Javascript
jQuery实现模糊查询的方法分析
2018/05/10 jQuery
从源码里了解vue中的nextTick的使用
2018/11/22 Javascript
vue(2.x,3.0)配置跨域代理
2019/11/27 Javascript
查找Vue中下标的操作(some和findindex)
2020/08/12 Javascript
python爬虫基础教程:requests库(二)代码实例
2019/04/09 Python
kafka监控获取指定topic的消息总量示例
2019/12/23 Python
Python configparser模块应用过程解析
2020/08/14 Python
MATCHESFASHION.COM法国官网:英国奢侈品零售商
2018/01/04 全球购物
学生拾金不昧表扬信
2014/01/21 职场文书
标准自荐信范文
2014/01/29 职场文书
优秀家长事迹材料
2014/05/17 职场文书
初三语文教学计划
2015/01/22 职场文书
因身体原因离职的辞职信范文
2015/05/12 职场文书
2015年保险公司个人工作总结
2015/05/22 职场文书
《水上飞机》教学反思
2016/02/20 职场文书
2016年学校党支部公开承诺书
2016/03/25 职场文书
css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效
2021/04/29 HTML / CSS