前言
本文主要介紹的是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)//添加請求攔截器 loadingaxios.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 = axiosVue.prototype.getUrls = getUrlsrouter.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>總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對錯新站長站的支持。
新聞熱點
疑難解答
圖片精選