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 相关文章推荐
JavaScript Cookie的读取和写入函数
Dec 08 Javascript
jQuery之折叠面板的深入解析
Jun 19 Javascript
jQuery层动画定位滑动效果的方法
Apr 30 Javascript
封装获取dom元素的简单实例
Jul 08 Javascript
最全面的JS倒计时代码
Sep 17 Javascript
常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数
Sep 23 Javascript
浅谈js for循环输出i为同一值的问题
Mar 01 Javascript
使用jQuery ajaxupload插件实现无刷新上传文件
Apr 23 jQuery
vuex学习之Actions的用法详解
Aug 29 Javascript
vue绑定的点击事件阻止冒泡的实例
Feb 08 Javascript
JavaScript面向对象的程序设计(犯迷糊的小羊)
May 27 Javascript
微信小程序中使用Async-await方法异步请求变为同步请求方法
Mar 28 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的FTP学习(一)[转自奥索]
2006/10/09 PHP
php基础知识:控制结构
2006/12/13 PHP
php获取操作系统语言代码
2013/11/04 PHP
php+mysql+ajax实现单表多字段多关键词查询的方法
2017/04/15 PHP
Jquery中显示隐藏的实现代码分析
2011/07/26 Javascript
在JS数组特定索引处指定位置插入元素
2014/07/27 Javascript
js实现iframe跨页面调用函数的方法
2014/12/13 Javascript
jQuery编程中的一些核心方法简介
2015/08/14 Javascript
莱鸟介绍window.print()方法
2016/01/06 Javascript
JS组件Bootstrap Table布局详解
2016/05/27 Javascript
AngularJS实现动态编译添加到dom中的方法
2016/11/04 Javascript
详解JavaScript对象的深浅复制
2017/03/30 Javascript
关于axios返回空对象的问题解决
2017/04/04 Javascript
js 事件的传播机制(实例讲解)
2017/07/20 Javascript
JS基于递归实现网页版计算器的方法分析
2017/12/20 Javascript
如何用RxJS实现Redux Form
2018/12/29 Javascript
vuejs数据超出单行显示更多,点击展开剩余数据实例
2019/05/05 Javascript
Python的内存泄漏及gc模块的使用分析
2014/07/16 Python
python使用socket向客户端发送数据的方法
2015/04/29 Python
Python实现邮件的批量发送的示例代码
2018/01/23 Python
django用户登录和注销的实现方法
2018/07/16 Python
python实现简易动态时钟
2018/11/19 Python
opencv实现图片模糊和锐化操作
2018/11/19 Python
宝塔面板出现“open_basedir restriction in effect. ”的解决方法
2021/03/14 PHP
集团公司总经理岗位职责
2013/12/20 职场文书
医院总经理职责
2013/12/26 职场文书
银行存款证明样本
2014/01/17 职场文书
公司总经理工作职责管理办法
2014/02/28 职场文书
感恩节活动策划方案
2014/05/16 职场文书
收款委托书范本
2014/09/11 职场文书
2015驻村干部工作总结
2015/04/07 职场文书
背起爸爸上学观后感
2015/06/08 职场文书
于丹讲座视频观后感
2015/06/15 职场文书
Pycharm连接远程服务器并远程调试的全过程
2021/06/24 Python
分享mysql的current_timestamp小坑及解决
2021/11/27 MySQL
详解OpenCV曝光融合
2022/04/29 Python