微信小程序和百度小程序开发的一些不同点

百度小程序的不同:

1:  initActive从onload放到onready中

2: bindtap='{{childTickeData.freeadd?"childticket":""}}',语法错误。会导致页面加载不出来,而且也不报任何错。

3:使用搬家工具,支付api名称转换不对应,还是微信的,应该改成百度的。

4:自定义属性不能出现null或者“”,否者默认为true

5:给图片的src属性赋值,使用了三元运算符,src不能用“”,否者图片不换

6:input输入框与其他元素如果在同一区域,则同一区域的其他点击事件无效,建议不要重合。如果是type=“number”,在重复移除焦点获取焦点之后,输入框的值会消失,可使用bindfocus重新给输入框赋值

7:s-for:应该为数组,数字无效

8:

var lettercity_success = function (data) {
  if (data.length != 0) {
    var catchdata = data.slice(0, 2);
    var queryshowcitys = [];
    for (var i = 0; i < data.length; i++) {
     var param = that.clone(data[i]);
     if(param.departures.length>3){
      param.isshowall = false;
      }else{
         param.isshowall = true;
      }
      param.departures = param.departures.slice(0, 3);
      
      queryshowcitys.push(param);
    }
    that.setData({ lettercityarr: data, queryshowcitys: queryshowcitys });
  } else {
    that.setData({ lettercityarr: [] });
    that.setData({ islettercityshow: false });
  }
};

在同一个方法中,如代码中如果要分别用data和queryshowcitys 给两个属性赋值,queryshowcitys 获取值最好使用clone的方式。即使先用setdata给lettercityarr赋值,再执行逻辑给queryshowcitys指赋值,也不行,依然会造成data的值发生改变。以下是clone代码:

const clone = function (data) {
  let model = {};

  for (let item in data) {
    console.log(Object.prototype.toString.call(data[item]));
    if (data[item] instanceof Array) {
      model[item] = new Array();
      for (let i = 0; i < data[item].length; i++) {

        model[item].push(this.clone(data[item][i]));
      }
    } else {
      model[item] = data[item];
    }

  }
  return model;
};

9:页面传值,考虑对值使用encodeURIComponent编码,比如传带有http://,如果不使用编码,则在另一页面接收值会成为http:/。

10:传参数不要使用scope字段,scope,百度小程序页面跳转自带此参数

11:在ios系统中,网络请求的状态码为异常的时候,比如500,550,百度小程序会对返回的结果做处理,看不到服务端返回的具体错误信息。

12:map:通过网络请求拿到坐标,再将地图中心点设置此坐标。需要设置show-location="false"。

在ios系统中还需要处理,bindupdated="updatedMap",地图加上这个事件,在updatedMap方法中判断一下当前地图中心位置是否和预期一样

  1. if(this.ischeckedmapcenter==true){//是否检验过中心位置准确
    return;
    }
    var mapCtxget = swan.createMapContext('myMap');
    var that = this;
    mapCtxget.getCenterLocation({
    success: function (res) {
    if (res.longitude != that.data.curgeocodes.longitude || res.latitude != that.data.curgeocodes.latitude) {
    var getlongitude = that.data.curgeocodes.longitude;
    var getlatitude = that.data.curgeocodes.latitude;
    that.setData({
    "curgeocodes.longitude": getlongitude,
    "curgeocodes.latitude": getlatitude,
    "ischeckedmapcenter":true
    });
    }
    }
    })

     

转载于:https://my.oschina.net/u/2417992/blog/3042727

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值