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 相关文章推荐
鼠标移动到一张图片时变为另一张图片
Dec 05 Javascript
基于JavaScript实现继承机制之原型链(prototype chaining)的详解
May 07 Javascript
JavaScript实现页面实时显示当前时间的简单实例
Jul 20 Javascript
基于jQuery实现文本框缩放以及上下移动功能
Nov 24 Javascript
基于JavaScript实现一定时间后去执行一个函数
Dec 14 Javascript
浅谈javascript:两种注释,声明变量,定义函数
Oct 05 Javascript
jQuery弹出层插件popShow(改进版)用法示例
Jan 23 Javascript
jQuery内容筛选选择器实例代码
Feb 06 Javascript
微信小程序模拟cookie的实现
Jun 20 Javascript
微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)
Apr 11 Javascript
Nest.js参数校验和自定义返回数据格式详解
Mar 29 Javascript
VUE之图片Base64编码使用ElementUI组件上传
Apr 09 Vue.js
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 小心urldecode引发的SQL注入漏洞
2011/10/27 PHP
PHP新手NOTICE错误常见解决方法
2011/12/07 PHP
PHP生成网站桌面快捷方式代码分享
2014/10/11 PHP
PHP实现递归无限级分类
2015/10/22 PHP
Laravel框架实现redis集群的方法分析
2017/09/14 PHP
PHP两个n位的二进制整数相加问题的解决
2018/08/26 PHP
php两点地理坐标距离的计算方法
2018/12/29 PHP
js 立即调用的函数表达式如何写
2014/01/12 Javascript
网页右下角弹出窗体实现代码
2014/06/05 Javascript
JavaScript中的包装对象介绍
2015/01/27 Javascript
javascript实现网页端解压并查看zip文件
2015/12/15 Javascript
javascript实现平滑无缝滚动
2020/08/09 Javascript
JS+Canvas 实现下雨下雪效果
2016/05/18 Javascript
JS使用单链表统计英语单词出现次数
2016/06/16 Javascript
浅谈jquery页面初始化的4种方式
2016/11/27 Javascript
jQuery使用eraser.js插件实现擦除、刮刮卡效果的方法【附eraser.js下载】
2017/04/28 jQuery
ionic环境配置及问题详解
2017/06/27 Javascript
初探Vue3.0 中的一大亮点Proxy的使用
2018/12/06 Javascript
vue实现多组关键词对应高亮显示功能
2019/07/25 Javascript
wx-charts 微信小程序图表插件的具体使用
2019/08/18 Javascript
[01:10:58]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
Python使用中文正则表达式匹配指定中文字符串的方法示例
2017/01/20 Python
python爬虫租房信息在地图上显示的方法
2019/05/13 Python
Python 3.8新特征之asyncio REPL
2019/05/28 Python
Python实现字符串中某个字母的替代功能
2019/10/21 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
2019/10/24 Python
Python脚本操作Excel实现批量替换功能
2019/11/20 Python
Jmeter调用Python脚本实现参数互相传递的实现
2021/01/22 Python
初中地理教学反思
2014/01/11 职场文书
家长给孩子的表扬信
2014/01/17 职场文书
采购部长岗位职责
2014/06/13 职场文书
八一建军节营销活动方案
2014/08/31 职场文书
2014年驾驶员工作总结
2014/11/18 职场文书
幼儿园母亲节活动总结
2015/02/10 职场文书
Java Optional<Foo>转换成List<Bar>的实例方法
2021/06/20 Java/Android
java泛型通配符详解
2021/07/25 Java/Android