当咱们在浏览器开发vue页面时,因为浏览器对于调试有自然的支持,咱们开发起来很方便。可是如今已经进入了移动端时代,移动端页面的需求愈来愈大。javascript
在开发移动端页面的时候咱们一般是在浏览器完成开发完成,以后才在手机端测试,若是测试出现问题还得从新回到浏览器上寻找错误。甚至还有嵌入在APP的页面,通过调试以后还要从新发包。固然还有更加奇怪的现象,因为手机浏览器和Web浏览器的差别,常常会发如今Web浏览器上好好的,一到手机上就不行的状况。html
所以首先咱们须要一个能在手机端调试的插件。若是你还在使用alert一步步来定位移动端页面bug的话,不妨试试vConsole。前端
vConsole是一个由微信公众平台前端团队研发的Web前端开发者面板,可用于展现console日志,方便开发、调试。能够在vConsole.js下载地址下载所需的js。下载解压以后,在dist文件夹中找到vconsole.min.js,加入工程中:vue
<script src="path/to/vconsole.min.js"></script> <script> // init vConsole var vConsole = new VConsole(); console.log('Hello world'); </script>
请注意,VConsole
只是 vConsole
的原型
,而非一个已实例化
的对象。因此在手动 new 实例化以前,vConsole
不会被插入到网页中。java
在安装完vConsole以后,你觉得事情就结束了吗?git
还有一个很大的问题就是确定不能让用户看到咱们的调试页面的,所以咱们须要偷偷给咱们的程序设置后门。github
这里有两种设计的思路以供参考:浏览器
在程序中某个地方设置长按10秒自动引入代码。微信
首先长按10秒的效果须要3个事件结合才能产生。app
代码以下,在标签上引入这三个事件:
<div @touchstart="handleTouchstart" @touchmove="handleTouchmove" @touchend="handleTouchend"> <van-col span="24" class="loginPage-title">title<an-col> </div>
对应的方法:
handleTouchstart() { touchStart(); }, handleTouchmove() { touchMove(); }, handleTouchend() { touchEnd(); },
其中的touchStart,touchMove,touchEnd方法由外部文件import进来,便于统一管理,固然其实也能够直接在这个文件里实现。
首先什么才叫长按10秒。touchstart而后开始计时10秒以后确定不叫长按10秒,这样就叫作点击事后10秒了。长按10秒应该是手指触碰连续10秒,期间不能触发touchmove和touchend事件。
所以思路应该是,touchstart开始计时,期间若是触发了touchmove和touchend事件则将计时器重置:
let timeOutEvent = null; export const touchStart = () => { timeOutEvent = setTimeout(function () { longPress(); }, 10000); }; export const touchMove = () => { clearTimeout(timeOutEvent); timeOutEvent = 0; } export const touchEnd = () => { clearTimeout(timeOutEvent); }
在longPress
方法中去动态引入vConsole:
const longPress = () => { clearTimeout(timeOutEvent); //清除定时器 timeOutEvent = 0; //执行长按要执行的内容 vConsoleLog() }; const vConsoleLog = () => { let mapScript = document.getElementById("vConsoleLog"); if(mapScript){ return; } let script = document.createElement('script'); script.id = 'vConsoleLog'; script.type = 'text/javascript'; script.src = './console.js'; document.body.appendChild(script); }
这样,咱们就在程序中植入了一个后门,须要调试的时候只须要长按10秒,vConsole就出来了。
若是想要严谨一点,不但愿用户在任什么时候候看到这个调试按钮的话,则能够根据环境(env)来引入vConsole。
转评赞就是最大的鼓励