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数据验证集合、js email验证、js url验证、js长度验证、js数字验证等简单封装
May 15 Javascript
Javascript之旅 对象的原型链之由来
Aug 25 Javascript
Web前端设计模式  制作漂亮的弹出层
Oct 29 Javascript
High Performance JavaScript(高性能JavaScript)读书笔记分析
May 05 Javascript
JS格式化数字保留两位小数点示例代码
Oct 15 Javascript
IE浏览器不支持getElementsByClassName的解决方法
Aug 27 Javascript
js通过location.search来获取页面传来的参数
Sep 11 Javascript
js实现下拉框选择要显示图片的方法
Feb 16 Javascript
jQuery获取某天的农历日期并判断是否除夕或新年的方法
Mar 01 Javascript
Javascript 函数的四种调用模式
Nov 05 Javascript
基于JQuery及AJAX实现名人名言随机生成器
Feb 10 Javascript
Vue中对iframe实现keep alive无刷新的方法
Jul 23 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的开发框架的现状和展望
2007/03/16 PHP
关于Sphinx创建全文检索的索引介绍
2013/06/25 PHP
如何使用php输出时间格式
2013/08/31 PHP
浅析php数据类型转换
2014/01/09 PHP
PHP不用递归实现无限分级的例子分享
2014/04/18 PHP
实例介绍PHP的Reflection反射机制
2014/08/05 PHP
ThinkPHP多语言支持与多模板支持概述
2014/08/22 PHP
PHP调用.NET的WebService 简单实例
2015/03/27 PHP
php采集神器cURL使用方法详解
2016/02/19 PHP
Flash对联广告的关闭按钮讨论
2007/01/30 Javascript
键盘 keycode的值 javascript时触发事件时很有用的要素
2009/11/02 Javascript
html中的input标签的checked属性jquery判断代码
2012/09/19 Javascript
一个不错的js html页面倒计时可精确到秒
2014/10/22 Javascript
javascript事件冒泡和事件捕获详解
2015/05/26 Javascript
javascript每日必学之封装
2016/02/23 Javascript
学习使用bootstrap的modal和carousel
2016/12/09 Javascript
BootStrap TreeView使用实例详解
2017/11/01 Javascript
JavaScript计算正方形面积
2019/11/26 Javascript
javascript实现鼠标点击生成文字特效
2019/12/24 Javascript
[22:20]初生之犊-TI4第5名LGD战队纪录片
2014/08/13 DOTA
Python urlopen 使用小示例
2008/09/06 Python
Python中.py文件打包成exe可执行文件详解
2017/03/22 Python
python脚本爬取字体文件的实现方法
2017/04/29 Python
Flask框架通过Flask_login实现用户登录功能示例
2018/07/17 Python
Pytest mark使用实例及原理解析
2020/02/22 Python
pyinstaller将含有多个py文件的python程序做成exe
2020/04/29 Python
Python抓包并解析json爬虫的完整实例代码
2020/11/03 Python
Python Selenium破解滑块验证码最新版(GEETEST95%以上通过率)
2021/01/29 Python
美国殿堂级滑板、冲浪、滑雪服装品牌:Volcom(钻石)
2017/04/20 全球购物
东南亚旅游平台:The Trip Guru
2018/01/01 全球购物
俄罗斯最大的在线珠宝大卖场:Nebo
2019/12/08 全球购物
不假外出检讨书
2014/01/27 职场文书
2015年五一劳动节慰问信
2015/03/23 职场文书
演讲稿之感恩老师(三篇范文)
2019/09/06 职场文书
python字符串的一些常见实用操作
2022/04/06 Python
springboot用户数据修改的详细实现
2022/04/06 Java/Android