前些日子刚刚入坑微信小程序,发现了它与其他前端语言有诸多不同,甚至官方文档也不全可靠.以下记录一些自己遇到的坑:
页面创建
创建页面不会默认新建文件夹,因此一定要记得先建一个文件夹再向其中添加页面.添加页面后一定要记得在页面的js头部里添加:
const app=getApp()
以免看到不必要的错误
页面数据
页面数据保存于page.data中.调用时要注意若有请求处理,需要在函数中将this保存为其他变量便于使用.
小程序中的会话保持
微信小程序中,每次向后台发送request默认都是一个全新的会话,如想要进行会话保持,可以在登录后返回sessionid保存,以后再向服务器发送请求时可以在请求头加上sessionid,来保证会话与上次会话一致:
header: { 'Cookie': 'JSESSIONID=' + app.globalData.sessionid},
注意会话过期的处理.
登录
每次登录都会产生一个code,code在被使用一次之后作废(可以用来生成openid等).在发布的小程序中常将code发送至后台来获取openid.
页面动态渲染
wx:if能够使页面动态渲染,可以用于block等标签.使用场合举例:
切换单选框显示不同的表单.
请求类型
get请求类型默认,但post需要注意:请求method中填的应为大写的POST(其它类型请求也一样),且在header中需要添加
"Content-Type": "application/x-www-form-urlencoded"
否则请求参数无法发送出去.
页面数据赋值
如下方式:
currentUser:app.globalData.currentUser
获取到的currentUser会是null.因此只能使用以下方式:
var info = app.globalData.currentUser;
// console.log(info);
this.setData({
currentUser: info
});
// console.log(this.data.currentUser);
参数传递
在小程序中若请求的参数值为null,则null会被作为字符串传递,有时会引起400错误
表单
获取表单数据:
e.detail.value;
获取表单项的id:
e.currentTarget.id
本文不定时更新,希望能给广大程序猿同僚带来帮助.
网友评论