Vue通过URL传参如何控制全局console.log的开关详解


Posted in Javascript onDecember 07, 2017

前言

最近在学习vue,发现了一个问题网上相关的信息很少,所以想着总结下,本文主要给大家介绍了关于Vue通过URL传参来控制全局console.log开关的相关内容,分享出来供大家参考学习,下面话不多说了,来随着小编一起看看详细的介绍吧。

实现方法如下:

如果你的项目中console.log了很多信息,但是发到生产环境上又不想打印这些信息,这时候就需要设置一个全局变量,如:debug,

用正则匹配一下参数:

const getQueryStr = (name) => {
 var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
 var r = window.location.search.substr(1).match(reg);
 if (r != null) return unescape(r[2]);
 return null;
};

当链接中含有这个参数时,将debug的状态置为true,这时console.log是正常可打印状态,否则将debug的状态置为false,这时重写console.log函数:

console.log = function () {
 return false;
}

这时的全局变量就可以用在整个项目中了,用来控制一些调试窗口的显隐。

在Vue中可以直写在stores/index.js中,当然,写在其他入口文件里也可以:

const getQueryStr = (name) => {
 var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
 var r = window.location.search.substr(1).match(reg);
 if (r != null) return unescape(r[2]);
 return null;
};
/* 若链接后面带上参数 envFlag=monitor
 * 则将 debug 置为true,否则置为false
*/
const monitor = 'monitor';
const envFlag = getQueryStr('envFlag');
let debug = monitor ? true : false;
if (envFlag === 'monitor') {
 console.log("%cNow You Can Console Log...", "color:red;font-size:18px;font-style:oblique;");
 debug = monitor;
} else {
 debug = '';
 console.log = function () {
 return false;
 }
}
const state = {debug: debug};
export const store = new vuex.Store({state, mutations});

这时候如果你想控制一个组件的显示或隐藏,只需要在vuex的getters中声明一下就可以使用变量debug了:

<monitor v-show="debug"></monitor>
vuex: {
 getters: {
 debug: state => state.debug
 }
}

做完以上的工作后,在URL后面带上参数 envFlag=monitor 就可以看到组件 monitor 被显示出来,同时打开控制台的话,就可以看到项目所有的 console.log 信息。

总结

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

Javascript 相关文章推荐
ExtJS 2.0实用简明教程 之获得ExtJS
Apr 29 Javascript
jquery无缝向上滚动实现代码
Mar 29 Javascript
Jquery 垂直多级手风琴菜单附源码下载
Nov 17 Javascript
jquery实现图片放大镜功能
Nov 23 Javascript
vue登录路由验证的实现
Dec 13 Javascript
vue.js实现只弹一次弹框
Jan 29 Javascript
vue+webpack实现异步加载三种用法示例详解
Apr 24 Javascript
Vue实现表格中对数据进行转换、处理的方法
Sep 06 Javascript
vue获取验证码倒计时组件
Aug 26 Javascript
基于VUE的v-charts的曲线显示功能
Oct 01 Javascript
解决新建一个vue项目过程中遇到的问题
Oct 22 Javascript
linux服务器快速卸载安装node环境(简单上手)
Feb 22 Javascript
Vue中添加手机验证码组件功能操作方法
Dec 07 #Javascript
react学习笔记之state以及setState的使用
Dec 07 #Javascript
React Native 截屏组件的示例代码
Dec 06 #Javascript
判断jQuery是否加载完成,没完成继续判断的解决方法
Dec 06 #jQuery
mui back 返回刷新页面的实例
Dec 06 #Javascript
javascript实现Emrips反质数枚举的示例代码
Dec 06 #Javascript
基于jQuery Ajax实现下拉框无刷新联动
Dec 06 #jQuery
You might like
php页面缓存ob系列函数介绍
2012/10/18 PHP
thinkPHP3.2.3结合Laypage实现的分页功能示例
2018/05/28 PHP
Yii框架where查询用法实例分析
2019/10/22 PHP
使用jQuery.Validate进行客户端验证(初级篇) 不使用微软验证控件的理由
2010/06/28 Javascript
基于jquery自己写tab滑动门(通用版)
2012/10/30 Javascript
js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
2013/12/11 Javascript
js点击文本框后才加载验证码实例代码
2015/10/20 Javascript
AngularJs自定义服务之实现签名和加密
2016/08/02 Javascript
微信小程序手势操作之单触摸点与多触摸点
2017/03/10 Javascript
利用node.js写一个爬取知乎妹纸图的小爬虫
2017/05/03 Javascript
ionic实现下拉刷新载入数据功能
2017/05/11 Javascript
vue单页应用中如何使用jquery的方法示例
2017/07/27 jQuery
Vue.js如何实现路由懒加载浅析
2017/08/14 Javascript
vue中如何创建多个ueditor实例教程
2017/11/14 Javascript
vue store之状态管理模式的详细介绍
2019/06/13 Javascript
VUE路由动态加载实例代码讲解
2019/08/26 Javascript
Vue页面刷新记住页面状态的实现
2019/12/27 Javascript
echarts柱状图背景重叠组合而非并列的实现代码
2020/12/10 Javascript
[48:12]Secret vs Optic Supermajor 胜者组 BO3 第三场 6.4
2018/06/05 DOTA
python抓取网页图片并放到指定文件夹
2014/04/24 Python
python中os模块详解
2016/10/14 Python
python中json格式数据输出的简单实现方法
2016/10/31 Python
利用python求相邻数的方法示例
2017/08/18 Python
在pycharm中创建django项目的示例代码
2020/05/28 Python
Python高阶函数与装饰器函数的深入讲解
2020/11/10 Python
使用bandit对目标python代码进行安全函数扫描的案例分析
2021/01/27 Python
LA MER海蓝之谜美国官网:传奇面霜
2016/08/27 全球购物
洛佩桑酒店官方网站:Lopesan Hotels
2019/04/15 全球购物
函数只定义了一次, 调用了一次, 但编译器提示非法重定义了-什么问题?
2014/10/03 面试题
Java的类可以定义为Protected或者Private得吗
2015/09/25 面试题
有个性的自我评价范文
2013/11/15 职场文书
管理信息系学生的自我评价
2014/01/11 职场文书
婚礼秀策划方案
2014/05/19 职场文书
2014年乡镇卫生院工作总结
2014/11/24 职场文书
原生CSS实现文字无限轮播的通用方法
2021/03/30 HTML / CSS
SQL Server Agent 服务无法启动
2022/04/20 SQL Server