vue如何根据网站路由判断页面主题色详解


Posted in Javascript onNovember 02, 2018

前言

本文主要介绍的是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>

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
jQuery 通过事件委派一次绑定多种事件,以减少事件冗余
Jun 30 Javascript
jquerymobile checkbox及时刷新才能获取其准确值
Apr 14 Javascript
Jquery颜色选择器ColorPicker实现代码
Nov 14 Javascript
JS判断两个时间大小的示例代码
Jan 28 Javascript
JavaScript学习笔记之JS函数
Jan 22 Javascript
JavaScript中的anchor()方法使用详解
Jun 08 Javascript
JavaScript实现弹窗效果代码分析
Mar 09 Javascript
jQuery设置图片等比例缩小的方法
Apr 29 jQuery
Element input树型下拉框的实现代码
Dec 21 Javascript
IntelliJ IDEA编辑器配置vue高亮显示
Sep 26 Javascript
javascript二维数组和对象的深拷贝与浅拷贝实例分析
Oct 26 Javascript
微信小程序如何实现radio单选框单击打勾和取消
Jan 21 Javascript
小程序实现列表点赞功能
Nov 02 #Javascript
Vue中的vue-resource示例详解
Nov 02 #Javascript
微信小程序实现列表页的点赞和取消点赞功能
Nov 02 #Javascript
React如何解决fetch跨域请求时session失效问题
Nov 02 #Javascript
element ui table 增加筛选的方法示例
Nov 02 #Javascript
Vue请求JSON Server服务器数据的实现方法
Nov 02 #Javascript
详解使用element-ui table组件的筛选功能的一个小坑
Nov 02 #Javascript
You might like
火影忍者:三大瞳力之一的白眼,为什么没有写轮眼那么出色?
2020/03/02 日漫
php 前一天或后一天的日期
2008/06/28 PHP
在Linux系统下一键重新安装WordPress的脚本示例
2015/06/30 PHP
关于PHP中Session文件过多的问题及session文件保存位置
2016/03/17 PHP
innerHTML,outerHTML,innerTEXT三者之间的区别
2007/01/28 Javascript
javascript中巧用“闭包”实现程序的暂停执行功能
2007/04/04 Javascript
js程序中美元符号$是什么
2008/06/05 Javascript
简单通用的JS滑动门代码
2008/12/19 Javascript
silverlight线程与基于事件驱动javascript引擎(实现轨迹回放功能)
2011/08/09 Javascript
JS简单实现文件上传实例代码(无需插件)
2013/11/15 Javascript
各浏览器对document.getElementById等方法的实现差异解析
2013/12/05 Javascript
把jQuery的类、插件封装成seajs的模块的方法
2014/03/12 Javascript
js中精确计算加法和减法示例
2014/03/28 Javascript
JS访问SWF的函数用法实例
2015/07/01 Javascript
Javascript原型链的原理详解
2016/01/05 Javascript
javascript执行环境及作用域详解
2016/05/05 Javascript
使用Angular.js开发的注意事项
2016/10/19 Javascript
bootstrap中使用google prettify让代码高亮的方法
2016/10/21 Javascript
jQuery中的for循环var与let的区别
2018/04/21 jQuery
nodejs提示:cross-device link not permitted, rename错误的解决方法
2019/06/10 NodeJs
详解Vue.js和layui日期控件冲突问题解决办法
2019/07/25 Javascript
Taro小程序自定义顶部导航栏功能的实现
2020/12/17 Javascript
[01:33:30]DOTA2-DPC中国联赛 正赛 RNG vs Phoenix BO3 第二场 2月5日
2021/03/11 DOTA
PyQt5实现下载进度条效果
2018/04/19 Python
关于python3.7安装matplotlib始终无法成功的问题的解决
2020/07/28 Python
pyqt5 textEdit、lineEdit操作的示例代码
2020/08/12 Python
Python监听键盘和鼠标事件的示例代码
2020/11/18 Python
使用Python通过oBIX协议访问Niagara数据的示例
2020/12/04 Python
企业统计员岗位职责
2013/12/13 职场文书
个人求职简历中英文自我评价
2013/12/16 职场文书
《火烧云》教学反思
2014/04/12 职场文书
“六查”、“三学”、“三干”查摆问题整改措施
2014/09/27 职场文书
2014年店长工作总结
2014/11/17 职场文书
Python实战之疫苗研发情况可视化
2021/05/18 Python
JavaScript实现班级抽签小程序
2021/05/19 Javascript
国产动画《万圣街》日语配音版制作决定!
2022/03/20 国漫