初写小程序遇到的坑以及解决办法(1)

    以前写前端用的是vue框架,发现小程序和它有许多相似的地方,所以入门小程序感觉比较简单,但小程序和vue也有许多地方不同,刚开始写遇到了一些习惯性的问题,比如小程序是单向绑定,vue是双向绑定。这点会有些不习惯,导致写代码时犯一些错误,下面就将遇到的一些常见问题和解决方法和大家分享一下。

   1.小程序请求接口时的sessionId是一直变化的,如果后台是通过sessionId来保持会话的,就会出现问题。

      解决办法:我主要把思路说一下,第一次请求完接口把sessionId保存到全局变量或storage里面,以后每次请求接口时都设置请求header,使用本地保存的seesionId。

     主要代码:
//第一次请求接口成功回调
success(res) {
if (res.data.code =='10000') {
wx.setStorageSync('sessionId', res.header["Set-Cookie"].substr(11,32), );
wx.setStorageSync('header', {
'content-type':'application/json',
'Cookie':'JSESSIONID=' + wx.getStorageSync('sessionId')
})
}

//以后每次请求接口
wx.request({ 
url: '',
header: wx.getStorageSync('header'),
success(res) {}
})
2.使用微信开发者工具调用接口时报错不在以下 request 合法域名列表中,请参考
解决办法:登陆微信公众平台|小程序->设置->开发设置->把域名添加进入就可以了,在开发阶段可以设置不对域名进行校验,
微信开发者工具最右边的'》'->点击详情->最下面选项不校验安全域名勾上
3.写小程序时经常会遇到这个问题,明明对变量赋值了,界面上没变化,我刚开始写的时候遇到好多次这个问题,看代码也没问题
啊,就是不更新到页面上
解决办法:写其他项目时赋值都习惯性的用=进行赋值,但是在小程序里面赋值必须得用this.setData({})方法,切记!
4.给对象中的某个属性赋值,直接写的话会提示语法错误,需要对数据加工一下
解决办法:
//比如修改obj的name属性
var str='obj.name';
this.setData({
   [str]:'aaa'
})
5.小程序有好多标签和组件都没有,我举两个比较常用的,比如table标签,这个需要自己实现可以用flex布局来实现,还有
dialog 自定义弹出框,可以参考这篇文章 http://blog.csdn.net/rolan1993/article/details/78801052 ,刚开始完全我按照文章的内容
来写代码都没啥问题,可是弹出框就是出不来,最后才发现是工具版本太低了,安装最新的版本就好了

6.小程序的弹出框主要用到的有两种,wx.showToast()和wx.showModal(),showToast会自动消失,但是它必须得有图片,默认是成功图片,
showModal提示框会有确定取消按钮,不需要图片

7.小程序有全局的变量,在app.js中设置globalData对象,在其他页面通过 const app=getApp();app.globalData就可以获取到。但小程序
好像没有全局的方法,反正我是没找到

8.由于是单向绑定,所以输入框输入后需要触发一个方法进行同步数据,如果一个界面有多个输入框的话,就需要通过参数进行控制,可是在标签
里面加data-传递参数
<input data-name='playerId' bindinput='input' placeholder='请输入玩家ID'></input>
data:{
     playerId:'',
     data:{},
  },
  onLoad(){

  },
  //输入事件
  input(e) {
    var str = e.target.dataset.name;
    this.setData({
      [str]: e.detail.value
    })
  },
9.小程序的下拉刷新和上拉加载
下拉刷新配置json{
    "enablePullDownRefresh": true
}
监听onPullDownRefresh()
上拉加载直接监听onReachBottom()

ps:如果有其他疑问的话可以写在评论里面一起讨论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值