vue3使用路由元信息meta实现动态页面标题

最终效果
页面变化时,页面标题也会随之变化
在这里插入图片描述
在这里插入图片描述
1、注册meta信息
进入router中的index.js,在每一个路由中配置meta信息

import Index from '~/pages/index.vue' 
import Login from '~/pages/login.vue' 
import NotFound from '~/pages/404.vue'

const routes=[
  {
    path:'/',
    name:Index,
    component:Index,
    meta:{
      title:'后台首页'
    }
  },
  {
    path: '/login',
    name:Login,
    component:Login,
    meta:{
      title:'登录页'
    }
  },
  {
    path: '/:pathMatch(.*)*',
    name:NotFound,
    component:NotFound,
    meta:{
      title:'404'
    }
  }
]

export const router = createRouter({
  history: createWebHashHistory(),
  routes
})

2、全局前置守卫设置页面标题
在全局前置守卫中可以通过to.meta.title拿到对应的标题信息

import {router} from '~/router'

router.beforeEach(async(to, from, next) => {
  const title = (to.meta.title ? to.meta.title : '') + '-商城后台'
  document.title = title
})

3、修改index.html中的title
上述步骤完成后,在刷新的时候会出现意想不到的情况,这是因为index.html中的title是固定的,因此你可以修改这个title,这样在刷新的时候不会显的那么突兀

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <link rel="icon" type="image/svg+xml" href="/vite.svg" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>商城后台</title>
  </head>
  <body>
    <div id="app"></div>
    <script type="module" src="/src/main.js"></script>
  </body>
</html>
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 3中实现动态路由导航菜单的方法如下: 1. 首先,在Vue项目中安装Vue Router,可以使用以下命令进行安装: ``` npm install vue-router@next ``` 2. 在项目的入口文件(通常是main.js)中引入Vue Router,并创建一个路由实例: ```javascript import { createApp } from 'vue' import { createRouter, createWebHistory } from 'vue-router' import App from './App.vue' const router = createRouter({ history: createWebHistory(), routes: [ // 定义路由配置 ] }) const app = createApp(App) app.use(router) app.mount('#app') ``` 3. 在路由配置中定义动态路由和对应的组件。可以使用`component`属性指定组件,使用`path`属性指定路由路径,使用`name`属性指定路由名称,使用`meta`属性传递额外的信息等。例如: ```javascript const routes = [ { path: '/', name: 'Home', component: Home }, { path: '/about', name: 'About', component: About }, // 其他动态路由配置 ] ``` 4. 在Vue组件中使用`router-link`组件来生成导航链接,使用`router-view`组件来显示对应的组件内容。例如,在导航菜单组件中可以这样使用: ```html <template> <div> <router-link to="/">Home</router-link> <router-link to="/about">About</router-link> <!-- 其他导航链接 --> <router-view></router-view> </div> </template> ``` 5. 在Vue组件中可以通过`$router`对象进行路由导航,例如: ```javascript methods: { goToAbout() { this.$router.push('/about') } } ``` 6. 最后,根据需要可以使用路由守卫(如`beforeEach`、`beforeResolve`、`afterEach`等)来进行路由的权限控制、页面加载前的处理等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值