本文主要介紹的是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
>
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值。