这是一个开发工具
vConole
带来的问题。虽然不大,可是若是你早已习惯 chrome 开发面板的使用方法,则很容易在开发中致使误解。前端
一、首先,解释下什么是 vConole
?
vConsole
是腾讯开发的一个轻量、可拓展、针对手机网页的前端开发者调试面板, 具体介绍见请:vConsole官方仓库。git
二、小程序里的 vConole
工具
微信小程序在开发过程当中也可使用 vConole
辅助在手机端进行调试,具体方法是:点击开发版小程序又上角 ...
,以后选择 打开调试
,以下图所示。github
三、在使用小程序开发工具中,因为 log 记录过多,咱们在一次调试过程当中可能会使用 clear
来清除log,事实上 clear
没有像 chrome 的 “clear console” 同样,作到真正的清除 log。而是将 log 清除后缓存了起来。待你下次刷新页面时会将两次 log 一块儿打印出来。咱们在调试 “小程序扫码bug” 时就遇到了该问题。chrome
a、咱们调试时,会在 onload 内将该函数参数打出,读取微信扫码的数据。小程序
onLoad(this: IndexPage, p) {
console.log('打印p参数打印p参数打印p参数打印p参数打印p参数打印p参数');
console.log(p);
}
复制代码
b、当咱们第一次扫码调试时,针对商户 “巴蜀传香” 打出的log结果如图所示,以后咱们点击 clear 清除了调试工具的 log 记录并退出。微信小程序
c、当咱们第二次扫不一样的二维码进入小程序时,预期onload的参数会变化。然而发现店铺变了,但扫描的结果没有改变(实际上二维码变了,店铺与log也应该会改变)。缓存
d、事实上,当你将 log 记录继续往下滑会发现,新的 log 记录也已打印出来。说明即便你以前点击了 clear ,新的 log 也会由于缓存再次打印出来。bash
IOS 和 安卓 都可稳定复现。微信
vConsole 会将已经 “clear” 的缓存再次打印出来。ide
微信反馈:“这是小程序底层的一个问题,正在修复中,不是vConsole的问题哈。”
调试的时候须要多日后翻一下,找到各次对应的扫码 log 记录。
开发阶段,可能由于 log 判断错误,而形成误解。