vue中修改浏览器图标和名字的几种方式?

前言

vue中,网页图标默认使用的是vue自带的一个icon的图标,也是vue的logo。

下面整理了几种改变标题和图标的方法

1.修改图标样式

01.使用图片

这个方法是可以使用图片的,png,jpg等

这个是原带默认的图标在vue\public下的index.html

<link rel="icon" href="<%= BASE_URL %>favicon.ico" rel="external nofollow" > 

先在public下创建static目录,引入使用,必须是在public下不然不会起作用的

直接修改成

<link rel="icon" type="image/x-icon" href="./static/icon/09.jpg" rel="external nofollow" >

02.使用图标

首先做一个ico的小图标,命名为 favicon.ico 放在 /public/下面,替换原有的 favicon.ico,同时删除 /public/img/icons/ 下面的VUE图片。

在根目录下面新建vue.config.js, 添加pwa

module.exports = {
    pwa: {
        iconPaths: {
            favicon32: 'favicon.ico',
            favicon16: 'favicon.ico',
            appleTouchIcon: 'favicon.ico',
            maskIcon: 'favicon.ico',
            msTileImage: 'favicon.ico'
        }
    }
};

2.修改浏览器名字设置

01.直接修改

这是刚创建最初的样子

<title>
    <%= htmlWebpackPlugin.options.title %>
</title>

这是直接修改成的名字

 <title>
    xx后台管理系统
  </title>

02.根据后端的传值动态修改名字

先去axios请求拿到结果,然后在进行修改

document.title = '需要设置的值'

03.在vue中使用插件的方式

001. npm进行安装

npm vue-wechat-title --save

002.全局使用,在main.js中引入

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

003.在router中的index.js路由下设置mate属性

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:'测试'
        }
  },
]

004.在APP.vue使用vue-wechat-title插件

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

04.路由守卫中进行修改

router

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:'测试'
        }
  },
]

路由守卫

router.beforeEach((to, form, next) => {
    if (to.meta.title) {
        document.title = to.meta.title
    } else {
        document.title = '默认标题' //此处写默认的title
    }
        next()
})

总结

原文地址:https://blog.csdn.net/fackyoufack/article/details/126439324