您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關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 信息。
感謝各位的閱讀!關于“Vue通過URL傳參怎樣控制全局console.log的開關”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。