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 相关文章推荐
firefox下input type=&quot;file&quot;的size是多大
Oct 24 Javascript
一个网页标题title的闪动提示效果实现思路
Mar 22 Javascript
深入理解Javascript中this的作用域
Aug 12 Javascript
jQuery弹出框代码封装DialogHelper
Jan 30 Javascript
jQuery插件实现文件上传功能(支持拖拽)
Aug 27 Javascript
node.js中 stream使用教程
Aug 28 Javascript
JS基于递归实现倒计时效果的方法
Nov 26 Javascript
JS实现图片垂直居中显示小结
Dec 13 Javascript
JavaScript实现的DOM树遍历方法详解【二叉DOM树、多叉DOM树】
May 07 Javascript
vue中element-ui表格缩略图悬浮放大功能的实例代码
Jun 26 Javascript
JavaScript事件发布/订阅模式原理与用法分析
Aug 21 Javascript
详解angular2.x创建项目入门指令
Oct 11 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类
2006/11/25 PHP
php提示undefined index的几种解决方法
2012/05/21 PHP
javascript 树控件 比较好用
2009/06/11 Javascript
javascript读写json示例
2014/04/11 Javascript
浅谈JavaScript中的string拥有方法的原因
2015/08/28 Javascript
Node.js巧妙实现Web应用代码热更新
2015/10/22 Javascript
VC调用javascript的几种方法(推荐)
2016/08/09 Javascript
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
2017/04/10 jQuery
Vue 按键修饰符处理事件的方法
2018/05/04 Javascript
VUE+Element UI实现简单的表格行内编辑效果的示例的代码
2018/10/31 Javascript
jQuery利用FormData上传文件实现批量上传
2018/12/04 jQuery
swiper自定义分页器的样式
2020/09/14 Javascript
[13:25]VP vs VICI (BO3)
2018/06/07 DOTA
Python3搜索及替换文件中文本的方法
2015/05/22 Python
详解Python的Django框架中的模版继承
2015/07/16 Python
初步认识Python中的列表与位运算符
2015/10/12 Python
MAC中PyCharm设置python3解释器
2017/12/15 Python
Python实现KNN邻近算法
2021/01/28 Python
python批量替换页眉页脚实例代码
2018/01/22 Python
浅析Python3爬虫登录模拟
2018/02/07 Python
Appium Python自动化测试之环境搭建的步骤
2019/01/23 Python
Python和Go语言的区别总结
2019/02/20 Python
Spark处理数据排序问题如何避免OOM
2020/05/21 Python
python中adb有什么功能
2020/06/07 Python
用python实现名片管理系统
2020/06/18 Python
幼儿园教师个人反思
2014/01/30 职场文书
求职信的七个关键技巧
2014/02/05 职场文书
学生会离职感言
2014/02/11 职场文书
2014年班主任工作总结
2014/11/08 职场文书
初级职称评定工作总结
2015/08/13 职场文书
使用golang编写一个并发工作队列
2021/05/08 Golang
Django实现翻页的示例代码
2021/05/24 Python
Django Paginator分页器的使用示例
2021/06/23 Python
Python+Appium自动化测试的实战
2021/06/30 Python
详解在SQLPlus中实现上下键翻查历史命令的功能
2022/03/18 SQL Server
Redis过期数据是否会被立马删除
2022/07/23 Redis