从6月份开始到如今,写小程序将近4个月了
开发时给本身埋了很多坑~
给你们分享下个人填坑经验~~html
1.小程序的组件修改不能触发页面刷新?
须要在父级文件上保存下才会触发
(使用wepy开发)vue
2.接口请求出现的问题?
记得勾选调试开发工具上 不校验合法域名ios
3.navigateTo跳转页面不生效?
页面栈最多支持10层,超过10层没法后退(10层以后有其余方法解决~)canvas
4.onload只会在页面加载时候执行,好比用navigateBack回到以前的页面的时候,以前那个页面不会再执行onload,
因此咱们要触发某些函数的时候,咱们能够放在onshow里面,即便是navigateBack回来也会执行小程序
5.子组件的onload会在父组件onload以前执行,有一个页面加载完成3s后展现飘窗的需求,飘窗会当即被加载
能够在父子组件用EventHandle(相似vue的eventBus)通讯下,以肯定子组件加载时机~api
6.操做用户头像(好比点击跳转)
open-data相似自定义组件,上面没法绑定事件,简单实现能够用navigator包裹open-data,不用写js代码便可实现点击跳转页面。navigator至关于html的a元素,默认为inline,可修改display样式为block
navigator组件属性 openType 可选值 'navigate'、'redirect'、'switchTab',对应于wx.navigateTo、wx.redirectTo、wx.switchTab的功能缓存
7.同一个页面想要2个分享?
须要在Page中添加onShareAppMessage方法,不然点右上角菜单不会出现转发选项
除了右上角菜单外,可使用button组件的open-type="share"
button组件和右上角的点点点都是调用onShareAppMessage方法
经过参数中的from字段区分事件来源是菜单menu仍是按钮button(某需求要求两个分享不一样)
经过onShareAppMessage方法返回的对象来定制转发界面显示的内容微信
8.分享成功后的打点消失了?
是的,微信取消支持这个功能了。。。
在原来的分享接口中,用户发起分享动做以后,能够经过 success 、fail、complete等回调来判断用户是否完成了最后的分享动做。老代码也是分享成功的经过分享success回调函数内打log的记录。因为官方后来取消了这个功能,因此分享的打点要放到外面来。微信开发
9.canvas相关
要进行绘制,则canvas组件必须真实地被写在页面上,并且其wx:if不能为false。
canvas是原生组件,层级是最高的,因此页面中z-index设置不生效。
因而把canvas放置在屏幕以外,如设置position:fixed;left:750rpx;异步
canvas的api,在页面中,api的参数this不是必填的,在组件中就是必填的,页面中可不填。
在绘制canvas时,因为draw是异步操做,须要把canvasToTempFilePath写到draw成功的回调里
(起初是绘制内容少很快,用同步写也不会出问题)
绘制出来的图片若是以为有点糊,请在canvas中等比例放大绘制尺寸~
可是也不能太大,否则在安卓上会有bug(限制范围貌似在2000px)。
10.全屏蒙版弹窗遮不住tabBar?
tabBar的层级仍是很高的,当出现全屏蒙版弹窗时,是没法盖住tabBar的,
能够调用微信的hidetabbar,不过须要注意兼容低版本
11.在placeholder-class类设置的颜色并无变化。
placeholder的颜色只能经过placeholder-style的方式设置
placeholder-style="color:#ccc"
1.只用开发者工具测试能行吗?
有些功能是版本限制的,开发者工具的基础库版本能够调整,可是没法设置微信版本,仍是须要真机。
2.扫描新生成的二维码会跳转到线上的连接?
之前是测试的时候须要用微信开发者工具来测试在编译模式,把二维码的具体信息添加进去
在最新的开发工具中,有一项 二维码编译 模式,解决了跳转线上小程序连接的问题
3.开发者工具上看效果没问题,可是在真机上测试不行?
通常说来都是真机缓存的影响,微信开发者工具是能够一键清理所有缓存
安卓和ios的上通常都是删除这个小程序(注意 不是删除使用记录)
再有就是,删除完毕后能够进入小程序的设置选项查看权限的开关来肯定是否真的彻底清除。
4.清除缓存后还有问题?
这时候就须要使用vConsole了
开发版和体验版能够点击真机小程序页面右上角的...按钮打开的菜单项“打开调试”来开启 vConsole
正式版没有“打开调试”的菜单项,能够先经过开发版和体验版来开启 vConsole,而后再打开正式版。
或者预埋一个隐藏操做,好比连续点击某个 Button 屡次,而后调用 API 接口 wx.setEnableDebug 来打开。
5.如何远程调试真机?
vConsole通常用来看有无报错,若是是简单的问题,我们直接修改代码就能够改好了了
复杂的状况还须要调试,手机毕竟看日志不方便,也不能断点调试、修改样式
此时须要借助远程调试来快速定位复杂问题~
使用开发者工具的远程调试窗口只要用手机扫一扫就能够连通手机和模拟器之间的数据连接,调试的上下文会自动切换到 VM Context 1
上传代码的话,须要勾选 样式自动补全一次没经过,请再提交一次吧:(