记微信小程序开发的一些坑

2018-06-14  本文已影响0人  Chitzkoi

前些日子刚刚入坑微信小程序,发现了它与其他前端语言有诸多不同,甚至官方文档也不全可靠.以下记录一些自己遇到的坑:

页面创建

创建页面不会默认新建文件夹,因此一定要记得先建一个文件夹再向其中添加页面.添加页面后一定要记得在页面的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

本文不定时更新,希望能给广大程序猿同僚带来帮助.

上一篇下一篇

猜你喜欢

热点阅读