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 相关文章推荐
js 数组的for循环到底应该怎么写?
May 31 Javascript
js实现双向链表互联网机顶盒实战应用实现
Oct 28 Javascript
JS清除选择内容的方法
Jan 29 Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
Oct 02 Javascript
利用jquery制作滚动到指定位置触发动画
Mar 26 Javascript
JS从数组中随机取出几个数组元素的方法
Aug 02 Javascript
快速移动鼠标触发问题及解决方法(ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave)
Aug 29 Javascript
Bootstrap Table从服务器加载数据进行显示的实现方法
Sep 29 Javascript
JQuery validate 验证一个单独的表单元素实例
Feb 17 Javascript
react实现pure render时bind(this)隐患需注意!
Mar 09 Javascript
详解vue添加删除元素的方法
Jun 30 Javascript
如何使用three.js 制作一个三维的推箱子游戏
Jul 29 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编实现程动态图像的创建代码
2008/09/28 PHP
让Json更懂中文(JSON_UNESCAPED_UNICODE)
2011/10/27 PHP
PHP中source #N问题的解决方法
2014/01/27 PHP
Laravel5.1自定义500错误页面示例
2016/10/09 PHP
PHP receiveMail实现收邮件功能
2018/04/25 PHP
TextArea 控件的最大长度问题(js json)
2009/12/16 Javascript
firefox和IE系列的相关区别整理 以备后用
2009/12/28 Javascript
基于jquery的$.ajax async使用
2011/10/19 Javascript
3款实用的在线JS代码工具(国外)
2012/03/15 Javascript
JavaScript高级程序设计 阅读笔记(二十一) JavaScript中的XML
2012/09/14 Javascript
基于jquery库的tab新形式使用
2012/11/16 Javascript
初识SmartJS - AOP三剑客
2014/06/08 Javascript
基于javascript的JSON格式页面展示美化方法
2014/07/02 Javascript
基于jquery实现复选框全选,反选,全不选等功能
2015/10/16 Javascript
超赞的jQuery图片滑块动画特效代码汇总
2016/01/25 Javascript
浅谈Vue组件及组件的注册方法
2018/08/24 Javascript
小程序云开发如何实现图片上传及发表文字
2019/05/17 Javascript
javascript实现的字符串转换成数组操作示例
2019/06/13 Javascript
vue服务端渲染操作简单入门实例分析
2019/08/28 Javascript
JavaScript canvas实现跟随鼠标移动小球
2021/02/09 Javascript
python交互式图形编程实例(三)
2017/11/17 Python
transform python环境快速配置方法
2018/09/27 Python
解决python打不开文件(文件不存在)的问题
2019/02/18 Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
2019/08/07 Python
python网络爬虫 CrawlSpider使用详解
2019/09/27 Python
tensorflow 获取checkpoint中的变量列表实例
2020/02/11 Python
Python基于xlutils修改表格内容过程解析
2020/07/28 Python
Python如何绘制日历图和热力图
2020/08/07 Python
Python3利用scapy局域网实现自动多线程arp扫描功能
2021/01/21 Python
CSS实现圆形放大镜狙击镜效果 只有圆圈里的放大
2012/12/10 HTML / CSS
学习朴航瑛老师爱岗敬业先进事迹思想汇报
2014/09/17 职场文书
2016应届毕业生就业指导课心得体会
2016/01/15 职场文书
2016年情人节广告语
2016/01/28 职场文书
2016年安全月活动总结
2016/04/06 职场文书
30岁前绝不能错过的10本书
2019/08/08 职场文书
数据分析数据库ClickHouse在大数据领域应用实践
2022/04/03 MySQL