vue3.2使用vue-wechat-title及路由导航守卫实现浏览器动态标题、替换浏览器的vue小图标

第一篇、浏览器动态标题

1、使用vue-wechat-title设置动态标题

由于访问不同的URL看到的页面title都是一样的,如何设置不同的页面Title呢?
比较方便的做法是用vue-wechat-title插件来实现。

下面讲解:

使用插件vue-wechat-title,设置浏览器动态标题的步骤

1)、安装vue-wechat-title

npm install vue-wechat-title -S 
npm install vue-wechat-title --save
"vue-wechat-title": "^2.0.7"   //2022-9-1 安装的

注:-S和–save都安装在package.json的dependencies生产环境

2)、main.ts引入插件

import VueWechatTitle from 'vue-wechat-title' //可以动态修改浏览器标题的插件
Vue.use(VueWechatTitle);

3)、在router中的index.ts路由下设置meta属性

const routes = [
	{
    path: '/about',
    name: 'About',
    component: () => import(/* webpackChunkName: "about" */ '../views/About.vue'),
	meta:{
		title:'关于'
	}
  },
  {
    path: '/test',
    name: 'Test',
    component: () => import(/* webpackChunkName: "test" */ '../views/Test.vue'),
	meta:{
		title:'测试'
	}
  },
]

重点是meta中的title

4)、APP.vue使用vue-wechat-title插件

<router-view v-wechat-title="$route.meta.title" />

在router-view中添加 v-wechat-title=“$route.meta.title” 实现动态title的展示

5)、实现效果

真实开发过程中的页面结果如下图:

在这里插入图片描述

2、通过路由导航守卫实现

const router = createRouter(constRoutes)

export function resetRouter() {
  const newRouter = createRouter(constRoutes)
  router.beforeEach((to, form, next) => {
    if (to.meta.title) {
      document.title = `${to.meta.title}-服务开发工具`
    } else {
      document.title = '服务开发工具'
    }
    next()
  })
  router.matcher = newRouter.matcher
}
export default router

重点是:

router.beforeEach((to, form, next) => {
    if (to.meta.title) {
      document.title = `${to.meta.title}-默认名称`
    } else {
      document.title = '默认标题'
    }
    next()
  })

3、使用vueuse中的useTitle

<template>
  <div>
    <button @click="handleClick">Update title</button>
    <p>Default title: {{ defaultTitle }}</p>
    <p>New title: {{ title }}</p>
  </div>
</template>
<script>
import { useTitle } from '@vueuse/core'
export default {
  setup() {
    const title = useTitle('New title')
    const defaultTitle = useTitle()
    const handleClick = () => {
      title.value = 'Updated title'
    }
    return { title, defaultTitle, handleClick }
  },
}

第二篇、更换浏览器标题的小图标

1、更换浏览器标题的小图标

vue项目默认使用的浏览器小图标是favicon.ico,存放在public\favicon.ico下,因此,只需替换这个favicon.ico图标即可。
在这里插入图片描述

1)、制作ico小图标

后缀为ico的图标也不难做,只需修改你要使用图片的后缀为ico即可

2)、替换public\favicon.ico下的图标

3)、实现效果:

在这里插入图片描述

注意:如果改了小图标,页面显示不生效
解决方法:在public\index.html (总的index.html)中
重点是注释掉 如下 两行代码

<!DOCTYPE html>
<html lang="en" style="overflow-y: auto">
  <head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width,initial-scale=1.0" />
    <!--<link rel="icon" href="<%= BASE_URL %>favicon.png" />-->  //注释掉
    <!-- <link href="https://fonts.googleapis.com/css?family=Roboto:100:300,400,500,700,900|Material+Icons" rel="stylesheet"> -->  //注释掉
    <title><%= VUE_APP_TITLE %></title>
  </head>
 ...
</html>
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值