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 相关文章推荐
正则表达式语法
Oct 09 Javascript
JavaScript 学习笔记 Black.Caffeine 09.11.28
Nov 30 Javascript
学习JavaScript设计模式(封装)
Nov 26 Javascript
使用Promise解决多层异步调用的简单学习心得
May 17 Javascript
node.js cookie-parser 中间件介绍
Jun 06 Javascript
jQuery插件Flexslider实现图片轮播、图文结合滑动切换效果
Apr 16 Javascript
使用grunt合并压缩js和css文件的方法
Mar 02 Javascript
easyui combogrid实现本地模糊搜索过滤多列
May 13 Javascript
JavaScrip关于创建常量的知识点
Dec 07 Javascript
简单了解JavaScript异步
May 23 Javascript
Jquery+javascript实现支付网页数字键盘
Dec 21 jQuery
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 getsiteurl()函数
2009/09/05 PHP
php中serialize序列化与json性能测试的示例分析
2013/04/27 PHP
有关于PHP中常见数据类型的汇总分享
2014/01/06 PHP
php 生成自动创建文件夹并上传文件的示例代码
2014/03/07 PHP
Smarty变量调节器失效的解决办法
2014/08/20 PHP
微信公众平台之快递查询功能用法实例
2015/04/14 PHP
使用WAMP搭建PHP本地开发环境
2017/05/10 PHP
PHP pthreads v3使用中的一些坑和注意点分析
2020/02/21 PHP
宝塔面板在NGINX环境中TP5.1如何运行?
2021/03/09 PHP
JavaScript类和继承 prototype属性
2010/09/03 Javascript
js setTimeout 常见问题小结
2013/08/13 Javascript
JavaScript将数据转换成整数的方法
2014/01/04 Javascript
JavaScript通过元素的ID和name设置样式
2014/07/08 Javascript
IE下通过a实现location.href 获取referer的值
2014/09/04 Javascript
详解AngularJS中自定义过滤器
2015/12/28 Javascript
JavaScript 消息框效果【实现代码】
2016/04/27 Javascript
Bootstrap3制作图片轮播效果
2016/05/12 Javascript
jQuery Easyui datagrid/treegrid 清空数据
2016/07/09 Javascript
JS实现的驼峰式和连字符式转换功能分析
2016/12/21 Javascript
详解有关easyUI的拖动操作中droppable,draggable用法例子
2017/06/03 Javascript
Angular5中调用第三方库及jQuery的添加的方法
2018/06/07 jQuery
基于Pandas读取csv文件Error的总结
2018/06/15 Python
pandas 空数据处理方法详解
2019/11/02 Python
django框架forms组件用法实例详解
2019/12/10 Python
Python实现文件压缩和解压的示例代码
2020/08/12 Python
利用Node实现HTML5离线存储的方法
2020/10/16 HTML / CSS
中粮集团旗下食品网上购物网站:我买网
2016/09/22 全球购物
伦敦剧院及景点门票:Encore Tickets
2018/07/01 全球购物
俄罗斯女装店:12storeez
2019/10/25 全球购物
大学生党员自我批评
2014/02/14 职场文书
《独坐敬亭山》教学反思
2014/04/08 职场文书
大学奖学金获奖感言
2014/08/15 职场文书
家长学校培训材料
2014/08/20 职场文书
质监局领导班子践行群众路线整改方案
2014/10/26 职场文书
2015年实习班主任工作总结
2015/04/23 职场文书
GTX1650super好不好 gtx1650super显卡属于什么级别
2022/04/08 数码科技