关于vue.js如何根据网站路由判断页面主题色教程详解
2018-11-25 23:28
互联网
本文主要介绍的是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'})returnconfig}),function(error) {Indicator.close()returnPromise.reject(error)}axios.interceptors.response.use(function(config) {Indicator.close()returnconfig}),function(error) {returnPromise.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 */newVue({el:'#app',router,components: { App },template:'<App/>'})
在util.js中
exportfunctiongetUrls() {let colorValuelet url = window.location.hreflet 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')}elseif(appU[appU.length-1] ==='resetPassword') {colorValue = styles.getPropertyValue('--pampers')sessionStorage.setItem('basecolor', colorValue)this.$router.push('/login')}}
在App.vue
<template><divid="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>
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值。
-
无相关信息