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 相关文章推荐
Jquery 基础学习笔记
May 29 Javascript
js onclick事件传参讲解
Nov 06 Javascript
jQuery子属性过滤选择器用法分析
Feb 10 Javascript
javascript数组去重方法汇总
Apr 23 Javascript
使用伪命名空间封装保护独自创建的对象方法
Aug 04 Javascript
JavaScript实战(原生range和自定义特效)简单实例
Aug 21 Javascript
Javascript 实现匿名递归的实例代码
May 25 Javascript
AngularJS实现自定义指令及指令配置项的方法
Nov 20 Javascript
使用watch监听路由变化和watch监听对象的实例
Feb 24 Javascript
在 Angular6 中使用 HTTP 请求服务端数据的步骤详解
Aug 06 Javascript
JavaScript生成随机验证码代码实例
Sep 28 Javascript
JavaScript 中的六种循环方法
Jan 06 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 操作excel文件的方法小结
2009/12/31 PHP
php读取mysql乱码,用set names XXX解决的原理分享
2011/12/29 PHP
php中长文章分页显示实现代码
2012/09/29 PHP
浅析php适配器模式(Adapter)
2014/11/25 PHP
windows下apache搭建php开发环境
2015/08/27 PHP
WordPress中用于获取文章作者与分类信息的方法整理
2015/12/17 PHP
thinkPHP3.x常量整理(预定义常量/路径常量/系统常量)
2016/05/20 PHP
Paypal实现循环扣款(订阅)功能
2017/03/23 PHP
jQuery UI Autocomplete 体验分享
2012/02/14 Javascript
JQuery页面的表格数据的增加与分页的实现
2013/12/10 Javascript
JavaScript中判断整数的多种方法总结
2014/11/08 Javascript
Javascript中的五种数据类型详解
2014/12/26 Javascript
javascript使用正则表达式实现去掉空格之后的字符
2015/02/15 Javascript
使用jQuery实现图片遮罩半透明坠落遮挡
2015/03/16 Javascript
详解vue2路由vue-router配置(懒加载)
2017/04/08 Javascript
详解使用angular的HttpClient搭配rxjs
2017/09/01 Javascript
微信小程序点击按钮动态切换input的disabled禁用/启用状态功能
2020/03/07 Javascript
JavaScript运行机制实例分析
2020/04/11 Javascript
微信小程序单选框自定义赋值
2020/05/26 Javascript
python中self原理实例分析
2015/04/30 Python
Python之Scrapy爬虫框架安装及使用详解
2017/11/16 Python
python生成tensorflow输入输出的图像格式的方法
2018/02/12 Python
python opencv之SURF算法示例
2018/02/24 Python
python requests.post带head和body的实例
2019/01/02 Python
在tensorflow中实现屏蔽输出的log信息
2020/02/04 Python
Pythonic版二分查找实现过程原理解析
2020/08/11 Python
会计自荐书
2013/12/02 职场文书
技术副厂长岗位职责
2013/12/26 职场文书
外企求职信范文分享
2013/12/31 职场文书
追悼会子女答谢词
2014/01/28 职场文书
中医学专业自荐信范文
2014/04/01 职场文书
外贸业务员求职信
2014/06/16 职场文书
八一建军节营销活动方案
2014/08/31 职场文书
四风问题专项整治工作情况报告
2014/10/28 职场文书
劳动纠纷调解协议书格式
2014/11/30 职场文书
营销策划分析:怎么策划才能更好销量产品?
2019/09/04 职场文书