这篇文章主要介绍了vue实现根据网站路由判断页面主题色的示例,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
需求:
不同品牌对应不同版本配色
做法:
根据域名带的参数判断进入哪个品牌,对应哪个版本
在main.js中
import Vue from 'vue' import App from './App' import router from './router' import axios from 'axios' import MintUI from 'mint-ui' import { Indicator } from 'mint-ui' import { getUrls } from '@/util/utils' import 'mint-ui/lib/style.css' import './css/index.css' Vue.use(MintUI) //添加请求拦截器 loading axios.interceptors.request.use(function (config) { Indicator.open({ text: '加载中...', spinnerType: 'fading-circle' }) return config }),function (error) { Indicator.close() return Promise.reject(error) } axios.interceptors.response.use(function (config) { Indicator.close() return config }),function (error) { return Promise.reject(error) } Vue.prototype.$http = axios Vue.prototype.getUrls = getUrls router.beforeEach((to,from,next) => { if (sessionStorage.getItem('basecolor')) { document.documentElement.style.setProperty("--color", sessionStorage.getItem('basecolor')) next() } }) Vue.config.productionTip = false /* eslint-disable no-new */ new Vue({ el: '#app', router, components: { App }, template: '<App/>' })
在util.js中
export function getUrls() { let colorValue let url = window.location.href let urlArr = url.split('?') let appU = urlArr[0].split('/') let styles = getComputedStyle(document.documentElement) if (appU[appU.length-1] === 'login') { colorValue = styles.getPropertyValue('--OLAY') sessionStorage.setItem('basecolor', colorValue) this.$router.push('/login') } else if (appU[appU.length-1] === 'resetPassword') { colorValue = styles.getPropertyValue('--pampers') sessionStorage.setItem('basecolor', colorValue) this.$router.push('/login') } }
在App.vue
<template> <div id="app"> <router-view/> </div> </template> <script> export default { name: 'App', created() { this.getUrls() } } </script> <style> :root { --OLAY: rgb(237,202,138); --pampers: rgb(5,183,185); --color: #fff; } #app{ height: 100%; } </style>
感谢你能够认真阅读完这篇文章,希望小编分享的“vue实现根据网站路由判断页面主题色的示例”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。