vue动态修改浏览器标题和logo

问题描述

需要将一个系统,更改一下标题、logo,然后部署成另一个系统,由于不想单独拉出一套代码(单独拉出来后维护成本增加),所以想要动态改变系统标题和图标

解决方案

将项目制造一个入口可以修改项目的名称和logo,后端给了一个上传logo的接口,一个更改项目名称的接口,我上传logo,后端返回给我一个图片链接,我更改项目名称,后端返回一个项目名称,我将项目logo和项目名称存入vuex,并监听vuex里的项目名称和项目logo,一旦项目名称和项目logo发生改变,就可以将项目名称和项目logo实时改掉

 关于,如何上传这个逻辑就不写了,直接写如何实时更改项目名称和项目logo,找到项目中的app.vue 文件,动态创建link标签,调用后端接口,获取返回的图片

<template><div id="app"><router-view v-if="isRouterAlive" /></div>
</template><script>
import {config, configKey, logosimg1, syslog1} from "@/api/menu";
import Cookies from "js-cookie";
import {mapGetters} from "vuex";export default {name: 'App',provide () {return {reload: this.reload}},data () {return {isRouterAlive: true,link :document.querySelector("link[rel*='icon']")}},created() {this.getproject()this.getlogo()},computed:{...mapGetters(['getSetLogol','getSetName']),setLogo(){return this.getSetLogol},setName() {return this.getSetName}},watch:{//每次监听到项目名称和logo改变,就调后端返回项目名称和logo的接口,目的就是为了实时改变项目名 称和logosetLogo(newUrl){this.getlogo()},setName(newName){this.getproject()}},methods: {//获取项目名字getproject(){if(Cookies.get('Admin-Token')){//登录之后configKey().then((res)=>{this.$store.dispatch('settings/setName', res.msg)document.title=res.msg})}else {//登录之前config().then((res)=>{this.$store.dispatch('settings/setName', res.msg)document.title=res.msg})}},// 获取项目logogetlogo(){if(Cookies.get('Admin-Token')){//登录之后logosimg1().then((res)=>{this.$store.dispatch('settings/setLogol', res.msg)var link = document.querySelector("link[rel*='icon']")link.href=res.msg})}else {//登录之前syslog1().then((res)=>{this.$store.dispatch('settings/setLogol', res.msg)var link = document.querySelector("link[rel*='icon']")link.href=res.msg})}},reload () {this.isRouterAlive = falsethis.$nextTick(function () {this.isRouterAlive = true})}}
}
</script>

 以上代码就能实现动态更改浏览器标题和logo

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/8546.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity | HDRP高清渲染管线学习笔记:Rendering Debugger窗口

HDRP给我们提供了一套完整的可视化Debug工具&#xff0c;集成在Rendering Debugger窗口。通过顶部菜单Window→Analysis→Rendering Debugger可以打开窗口。Rendering Debugger窗口不仅仅可以在编辑模式下使用&#xff0c;也可以在真机上运行时使用。&#xff08;要在真机上运行…

Numpy学习(参考)

目录 一、前言 二、numpy官方文档 文档划分 参数规范 相关知识明知 Routines学习(部分) 1、创建 2、数组操作常用 ufunc 三、numpy基本操作 开篇探索 数据类型 创建数组 创建数组有5种常规机制 常用创建方法 拷贝创建 数组运算 形状操作 查看形状 形状变换 …

linux中安装Nginx的具体步骤

1.首先介绍一下Ngnix nginx是一款使用c语言编写的高性能的HTTP和反向代理服务器&#xff0c;特点是占有内存少&#xff0c;并发能力强&#xff0c;事实上Nginx的并发能力确实在同类型的网页服务器中表现得最好&#xff0c;中国大陆使用Nginx网站用户有&#xff1a;百度、京东、…

自定义 MVC 框架思想

目录 一、MVC设计模式 1. 什么是MVC 2. 三层架构与MVC的区别 二、自定义MVC框架 1. 为什么要学习自定义MVC框架 2. 自定义MVC的工作原理 3. 自定义MVC框架的优势 三、自定义MVC实例流程 1. mvc三层架构的弊端 2. 自定义MVC的工作流程 2.1 子控制器&#xff08;…

《Redis 核心技术与实战》课程学习笔记(一)

基本架构&#xff1a;一个键值数据库包含什么&#xff1f; 这样学 Redis&#xff0c;才能技高一筹 为了保证数据的可靠性&#xff0c;Redis 需要在磁盘上读写 AOF 和 RDB&#xff0c;但在高并发场景里&#xff0c;这就会直接带来两个新问题&#xff1a; 一个是写 AOF 和 RDB …

第十二章线程池

文章目录 享元模式手写数据库连接池 为什么需要线程池自定义线程池自定义拒绝策略接口自定义任务队列自定义线程池 JDK中的线程池常用的线程池的类和接口的之间的关系线程池状态构造方法线程池的工作流程拒绝策略 ExecuctorsnewFixedThreadPoolnewCachedThreadPoolnewSingleThr…

django celery简单 例子

django celery简单 例子 https://docs.celeryq.dev/en/latest/django/first-steps-with-django.html pip list pip install Django4.2.3 pip install redis4.6.0 pip install celery5.3.1 pip install SQLAlchemy2.0.17 source demo1_venv/bin/activate django-admin start…

二、QT工程中各个文件代表的含义

QT从入门到实战学习笔记 基本QT工程中各个文件知识1、main函数2、.pro工程文件3、QT5基本模块4、.h头文件 基本QT工程中各个文件知识 1、main函数 #include "mymainwindow.h" #include <QApplication> //包含一个应用程序类的头文件 //main程序入口 argc命…

GaussDB OLTP云数据库配套工具DDM

目录 一、前言 二、DDM定义 三、DDM业务架构 四、为什么需要DDM? 五、DDM特性 六、DDM应用场景 一、前言 现在越来越多的企业应用在逐步向云平台迁移&#xff0c;同时这对云平台带了一个严峻的考验和挑战。但针对华为云GaussDB数据库&#xff0c; 我们在生态方面做了比…

数据治理平台怎样进行数据治理?做数据治理公司推荐

在大数据蓬勃发展的时代&#xff0c;有很多数据问题&#xff0c;如数据质量不高、数据共享程度较低&#xff0c;那如何提升数据质量&#xff0c;怎样进行数据治理呢&#xff1f; 数据治理在实施过程中会牵涉到很多部门&#xff0c;那如何进行数据治理呢&#xff1f; 1.梳理企业…

在VMware Workstation虚拟机上安装centos服务,并使用xshell连接centos服务。

一、安装VMware Workstation 可前往http://www.kkx.net/soft/22239.html&#xff0c;附带有下载链接&#xff0c;和对应的破解码。 二、下载centos .iso格式文件 前往https://mirrors.aliyun.com/centos/7/isos/x86_64/下载。 以下两个&#xff0c;选择哪一个都行。 记得要下…