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获取客户端网卡的IP地址、MAC地址
Mar 26 Javascript
js获取本机操作系统类型的两种方法
Dec 19 Javascript
Easyui form combobox省市区三级联动
Jan 13 Javascript
微信小程序 摇一摇抽奖简单实例实现代码
Jan 09 Javascript
Avalonjs双向数据绑定与监听的实例代码
Jun 23 Javascript
微信小程序实现顶部选项卡(swiper)
Jun 19 Javascript
jQuery实现滚动到底部时自动加载更多的方法示例
Feb 18 jQuery
JS中验证整数和小数的正则表达式
Oct 08 Javascript
简单了解node npm cnpm的具体使用方法
Feb 27 Javascript
10个最受欢迎的 JavaScript框架(推荐)
Apr 24 Javascript
vue实现分页栏效果
Jun 28 Javascript
express中static中间件的具体使用方法
Oct 17 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
利用文件属性结合Session实现在线人数统计
2006/10/09 PHP
简单概括PHP的字符串中单引号与双引号的区别
2016/05/07 PHP
phpcms配置列表页以及获得文章发布时间
2017/07/04 PHP
Centos7安装swoole扩展操作示例
2020/03/26 PHP
JQuery扩展插件Validate 3通过参数设置错误信息
2011/09/05 Javascript
javascript中if和switch,==和===详解
2015/07/30 Javascript
js基于面向对象实现网页TAB选项卡菜单效果代码
2015/09/09 Javascript
jquery实现可旋转可拖拽的文字效果代码
2016/01/27 Javascript
关于JS中的apply,call,bind的深入解析
2016/04/05 Javascript
JS实现简单易用的手机端浮动窗口显示效果
2016/09/07 Javascript
jquery.Callbacks的实现详解
2016/11/30 Javascript
Bootstrap3多级下拉菜单
2017/02/24 Javascript
jquery mobile实现可折叠的导航按钮
2017/03/11 Javascript
Vue.js展示AJAX数据简单示例讲解
2017/03/29 Javascript
为什么要使用Vuex的介绍
2019/01/19 Javascript
SSM+layUI 根据登录信息显示不同的页面方法
2019/09/20 Javascript
vue中defineProperty和Proxy的区别详解
2020/11/30 Vue.js
Python中实现常量(Const)功能
2015/01/28 Python
python中urlparse模块介绍与使用示例
2017/11/19 Python
pandas or sql计算前后两行数据间的增值方法
2018/04/20 Python
Python实现自动访问网页的例子
2020/02/21 Python
Pygame框架实现飞机大战
2020/08/07 Python
日本高端护肤品牌:Tatcha
2016/08/29 全球购物
澳大利亚宠物食品和药物在线:Jumbo Pets
2018/03/24 全球购物
日本必酷网络直营店:Biccamera
2019/03/23 全球购物
澳大利亚床上用品、浴巾和家居用品购物网站:Bambury
2020/04/16 全球购物
JDK安装目录下有哪些内容
2014/08/25 面试题
为数据库创建索引都需要注意些什么
2012/07/17 面试题
介绍一下Mysql的存储引擎
2015/02/12 面试题
业务主管岗位职责
2013/11/20 职场文书
书法大赛策划方案
2014/06/04 职场文书
专业见习报告范文
2014/11/03 职场文书
2014年纪检工作总结
2014/11/12 职场文书
2015年大学元旦晚会活动策划书
2014/12/09 职场文书
销售业务员岗位职责
2015/02/13 职场文书
2016年机关单位节能宣传周活动总结
2016/04/05 职场文书