Vue通过URL传参如何控制全局console.log的开关详解

网友投稿 290 2023-03-08


Vue通过URL传参如何控制全局console.log的开关详解

前言

最近在学习vue,发现了一个问题网上相关的信息很少,所以想着总结下,本文主要给大家介绍了关于Vue通过URL传参来控制全局console.log开关的相关内容,分享出来供大家参考学习,下面话不多说了,来随着一起看看详细的介绍吧。

实现方法如下:

如果你的项目中console.log了很多信息,但是发到生产环境上又不想打印这些信息,这时候就需要设置一个全局变量,如:debug,

用正则匹配一下参数:

const getQueryStr = (name) => {

var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");

var r = window.location.search.subhttp://str(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 Consohttp://le 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了:

vuex: {

getters: {

debug: state => state.debug

}

}

做完以上的工作后,在URL后面带上参数 envFlag=monitor 就可以看到组件 monitor 被显示出来,同时打开控制台的话,就可以看到项目所有的 console.log 信息。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:网站接口管理平台系统(网站接口管理平台系统有哪些)
下一篇:接口开发有哪些技术(接口开发工程师是做什么的)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~