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学习笔记[1] jQuery中的DOM操作
Dec 03 Javascript
JS动态获取当前时间,并写到特定的区域
May 03 Javascript
二叉树的非递归后序遍历算法实例详解
Feb 07 Javascript
jQuery 中国省市两级联动选择附图
May 14 Javascript
JS实现从表格中动态删除指定行的方法
Mar 31 Javascript
JS文字球状放大效果代码分享
Aug 19 Javascript
针对BootStrap中tabs控件的美化和完善(推荐)
Jul 06 Javascript
json与jsonp知识小结(推荐)
Aug 16 Javascript
javascript 判断当前浏览器版本并判断ie版本
Feb 17 Javascript
微信小程序scroll-view仿拼多多横向滑动滚动条
Apr 21 Javascript
javascript+HTML5 canvas绘制时钟功能示例
May 15 Javascript
jquery分页优化操作实例分析
Aug 23 jQuery
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 mysql数据库操作分页类
2008/06/04 PHP
PHP输入流php://input实例讲解
2015/12/22 PHP
php基于闭包实现函数的自调用(递归)实例分析
2016/11/11 PHP
Laravel第三方包报class not found的解决方法
2019/10/13 PHP
javascript 写类方式之六
2009/07/05 Javascript
jQuery Flash/MP3/Video多媒体插件
2010/01/18 Javascript
JS中setTimeout()的用法详解
2013/04/14 Javascript
jquery表格内容筛选实现思路及代码
2013/04/16 Javascript
JS完整获取IE浏览器信息包括类型、版本、语言等等
2014/05/22 Javascript
JavaScript字符串对象replace方法实例(用于字符串替换或正则替换)
2014/10/16 Javascript
ng-options和ng-checked在表单中的高级运用(推荐)
2017/01/21 Javascript
Vue 2.0中生命周期与钩子函数的一些理解
2017/05/09 Javascript
解决vue.js在编写过程中出现空格不规范报错的问题
2017/09/20 Javascript
VUE element-ui 写个复用Table组件的示例代码
2017/11/18 Javascript
JavaScript实现全选取消效果
2017/12/14 Javascript
微信小程序基于本地缓存实现点赞功能的方法
2017/12/18 Javascript
javascript实现考勤日历功能
2018/11/29 Javascript
JavaScript实现动态添加、移除元素或属性的方法分析
2019/01/03 Javascript
[00:09]DOTA2全国高校联赛 精彩活动引爆全场
2018/05/30 DOTA
举例详解Python中的split()函数的使用方法
2015/04/07 Python
Python中的测试模块unittest和doctest的使用教程
2015/04/14 Python
python实现监控某个服务 服务崩溃即发送邮件报告
2018/06/21 Python
Python 实现两个列表里元素对应相乘的方法
2018/11/14 Python
Python Pandas 获取列匹配特定值的行的索引问题
2019/07/01 Python
django-rest-framework 自定义swagger过程详解
2019/07/18 Python
机电工程专业应届生求职信
2013/10/03 职场文书
企业内部培训方案
2014/02/04 职场文书
报表员工作失误检讨书范文
2014/09/19 职场文书
语文复习计划
2015/01/19 职场文书
暂住证明怎么写
2015/06/19 职场文书
三十年同学聚会感言
2015/07/30 职场文书
企业愿景口号
2015/12/25 职场文书
2016优秀毕业生个人事迹材料
2016/02/29 职场文书
python opencv人脸识别考勤系统的完整源码
2021/04/26 Python
MySQL Router实现MySQL的读写分离的方法
2021/05/27 MySQL
python双向链表实例详解
2022/05/25 Python