vue3页面自定义title,动态修改title

该文章已生成可运行项目,

Vue项目中,通过在路由的index.js文件中添加路由守卫beforeEach,可以实现在每次跳转页面时动态设置window.document.title为当前页面的标题。首先创建并导出路由器实例,然后在beforeEach钩子中更新标题,确保代码位于createRouterexport default router之间。每个子路由需配置meta属性,包含页面标题。这样,每个子路由切换时,浏览器标题将随之更新。

一、router —> index.js

import { createRouter, createWebHashHistory } from 'vue-router'

const router = createRouter({
  history: createWebHashHistory(import.meta.env.BASE_URL),
  routes: [
    {
      path: '/',
      name: 'login',
      component: () => import('../views/Login/index.vue')
    },
    {
      path: '/map',
      name: 'map',
      meta: { title: '地图' },//子路由页的标题添加meta属性
      component: () => import('../views/map/index.vue')
    },
  ]
})

router.afterEach(to => {
  // 获取匹配的路由记录,倒序查找最近的 title
  const nearestWithTitle = to.matched
    .slice()
    .reverse()
    .find(r => r.meta?.title)
  // 设置标题或使用默认值
  document.title = nearestWithTitle?.meta.title || '产品应用' //没有meta,就默认展示'产品应用'
})
export default router

二、添加 meta 属性

设置每个子路由页的标题即可,在每个子路由对象中添加 meta 属性:

    {
      path: '/map',
      name: 'map',
      meta: { title: '地图' },//子路由页的标题添加meta属性
      component: () => import('../views/map/index.vue')
    }

在这里插入图片描述
在这里插入图片描述

上图就是不同路由路径展示了不同的title。

本文章已经生成可运行项目
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值