小程序的坑


input标签采用弹性布局,否则设置宽度百分百时候会出现问题

带文件的发送请求不要使用wx.request,应该使用uploadFild 来发送请求

this指向的问题,在回调中this会改变,需要保存指针

需要通过this.setData方法来设置data值的变化

使用wx:for 或者其他wx:if 之类时候最好用block包裹起来


在使用swiper的时候,如果同时使用上拉刷新功能,需要给swiper或者其父类计算高度,否则每次滑动swiper的时候都会
触发上拉刷新onReachBottom这个函数 ,另外如果采用swiper想实现Y轴滑动,里面的swiper-item 包一个view.这个view
需要设置overflow-y:auto 才能实现Y轴滑动 ,另外,虽然使用了overflow-scrolling:touch 能够增加流畅度.但是
在ios下,会出现屏幕回弹得BUG,在安卓不会. 另外,在开发者工具,swiper无论在任何位置下拉,都会触发onPullDownRefresh
这个函数实现下拉加载更多..但是在手机端是不会出现这个效果,开发者工具版本为0.19.191100


表单提交sumbit,如果不想一个个获取input标签的value值,可以使用button 标签,里面绑定属性formType=”submit”
就能一次过获取表单标签里面所有input的value值


在使用swiper的时候,快速切换或者网速慢的时候,会出现无限自动切换的问题,所以我们在切换的时候需要做一个判断,来避免切换事件bindchange 的重复调用

⑨在swiper中可以左右切换和上下切换的时候,最好先把非当前索引的其他swiper-item隐藏,避免一些bug。而且在流畅度上
会提升

10 一般我们会在底部固定某一个标签栏,这时候我们在布局的时候,注意高度的问题,因为在某些手机这个固定的标签栏会覆盖我们的一些元素,我们需要通过getSystem拿到屏幕的高度,再减去相应固定标签的高度,再去计算元素,避免遮挡的问题

11 使用scroll-view的时候,需要给它固定一个高度,并且设置scroll-y = true 才可以让它竖向滚动,但在使用这个scroll-view的时候,不同的手机端,在最底下的数据可能会被底下固定栏遮住,我们可能添加一个有高度的空标签把这个高度撑开,就能把数据全部展现出来了

12 还是scroll-view问题 在使用弹窗scroll-view时候,在上下拖动scroll-view时候,可能会出现穿透现象,如果屏幕可以滚动,在scroll-view上下拖动也可以拖动屏幕,出现拖动穿透问题了,解决这个问题可以在所有元素外添加一个标签,该标签
添加属性overflow-y = auto 设置宽高 100%; 来解决这个问题

13 picker标签的坑 有时候我们即使设置picker为宽度100%时候 也会出现点击失效原因,原因是picker里面有其他子元素
而子元素之间是有空隙的,这些空隙会导致picker点击失效,所有子元素的宽度尽可能铺满picker,避免picker点击失效

14 有时候我们可能在页面点击某处跳转到tab页面,这个时候我们一定要用switchTab去跳转,其他跳转不起作用。
不过一般来说我们不需要这样做,因为通过tab标签跳转的页面都可以用原生返回键返回

15 onLoad 和 onShow 区别
onLoad是页面加载时候出发
onShow 是页面显示触发
所以一些跳转之后不会关闭的页面,或者tab的页面,我们在有数据渲染时候应该放在onShow上,避免某个操作完成后回到
这些页面导致没有实时刷新数据还展示旧的数据

16 在swiper中如果想实现展开收缩某的功能 也是需要计算高度,拿到后台的数据进行高度的计算,然后每次点击
展开和收起的按钮时候,相应的增加和减少高度,这个高度要根据你后台返回的数据进行计算。如果不计算高度,实现上拉下拉刷新时候就会出现BUG了。 主要目的是计算swiper整个的高度,避免上拉加载的bug

17 拿到跳转传递过来的参数 在onLoad页面中,我们可以给onLoad一个事件对象,该对象可以返回跳转过来页面带过来的参数

18 打印机的设置,绑定打印机需要设置终端号和密钥的

19 需要预览图片可以通过api wx.previewImage 传入指定路劲进行预览

20 App() 函数只能在app.js注册.只能有一个

在app.js文件中,不能够调用getApp() 通过this就可以拿到实例

21 不要在 onLaunch 的时候调用 getCurrentPages(),此时 page 还没有生成。

22 navigateTo, redirectTo 只能打开非 tabBar 页面。
switchTab 只能打开 tabBar 页面。
reLaunch 可以打开任意页面。
页面底部的 tabBar 由页面决定,即只要是定义为 tabBar 的页面,底部都有 tabBar。

23 cheackBox 里的checked = {{false}} 不要直接写字符串 不要直接写 checked=”false” ,要用{{}}

24 当数据改变触发渲染层重新渲染的时候,会校正带有 key 的组件,框架会确保他们被重新排序,而不是重新创建,以确保使组件保持自身的状态,并且提高列表渲染时的效率。 所以为了效率最好加上wx:key

25 wx:if 也是惰性的,如果在初始渲染条件为 false,框架什么也不做,在条件第一次变成真的时候才开始局部渲染。
hidden 就简单的多,组件始终会被渲染,只是简单的控制显示与隐藏
wx:if 有更高的切换消耗而 hidden 有更高的初始渲染消耗。因此,如果需要频繁切换的情景下,用 hidden 更好,如果在运行时条件不大可能改变则 wx:if 较好。

26

你可能感兴趣的:(日常坑)