zoukankan      html  css  js  c++  java
  • 微信小程序踩坑之前端问题处理篇

    近期完成了一个小程序,自己做的前后端开发、真是惨哭我了o(╥﹏╥)o,下面几点希望大家可以避雷。

    首先,想先介绍一下我遇到问题的解决思路:

      1、先在postman调试接口,看数据获取是否正常,
      2、在微信开发者工具,考虑是不是语法不对,
      3、看看是不是组件的问题,有些组件是禁用一些点击事件的。

    1.数据更新

      想改变data数据,并不是简单的data:{ }就可以的,因为视图层和逻辑层的数据更新不一致,所以需要使用API:this.setData({ }) 进行改变。

     1.1 补充,如何用setData修改数组或对象中的一个属性值

      需求:改变lists[0]中的Sname

    Page({
       data:{
            lists:[
             {
              Sno:"001",
              Sname:"梨花"
            },
            {
              Sno:"002",
              Sname:"黛玉"
           }  
         ]
        } 
    })

    法一:直接修改

    onLoad:function () {
           var that = this;
           that.setData({
               'lists[0].Sname' : '小花'
          })
       }

    法二:①定义一个变量 把(lists[0].Sname)用字符串拼接起来 ②修改变量

    onLoad:function () {
           var that = this;
           var s = "lists[" + 0 + "].Sname"; 
           that.setData({
             [s] : '小花'
          })
       }

    2.this指向

      当函数定义的时候,会使用API,此时this指向会改变。但想在函数中使用全局上下文的this,我们选择利用that进行this指向的改变。

      在一个新函数中,定义一个that变量等于this,即选择用that进行备份。

    onLoad:function () {
           var that = this;  
    }

    3.存储全局变量

      ①首先在app.js中,定义全局变量globalData,可以原来存储登录状态的信息

    globalData: {
        user:{},
        Status:{}
    }

      ② 在其他js文件调用的时候,注意要先定义一个变量,然后再使用

    onLoad: function (options) {
        var app = getApp();
        wx.request({
          data: {
            Sno: app.globalData.user.username,
          }
      )}  
    }

    4.调用后端接口

      首先,注意后端返回的数据,格式可能不够统一。所以不能惯性思维,比如我当时 res.data.code ==> 应该是 res.data.error_code 。

    5.图片处理问题

      当使用的图片资源过大,会导致包过大,而无法打包。
    解决方案:
      ①将图片上传至QQ相册等,然后微信小程序在图片链接使用线上地址。
      ②使用BASE64进行图片转换。
      但是!当真机调试时,IOS系统无法展现图片,查找原因是因为图片没有配置服务器域名之类的问题,但后期配置了也没有效果。

      所以简单粗暴的,我选择把图片截图,不使用高清原图了,是的打包成功了。。。但后期还是要改善的,还是要保证用户体验感的!

    后续还有填坑分享的,喜欢帮忙顶个文吧!

  • 相关阅读:
    poj 3528 (三维几何求凸包+凸包表面积)
    dijkstra模板(好像是斐波那契额堆优化,但我为什么看起来像优先队列优化,和spfa一样)
    最大空凸包模板
    ICPC 2017–2018, NEERC, Northern Subregional Contest St Petersburg, November 4, 2017 I题
    hdu 5248 序列变换
    hdu 2063(二分图模板测试)
    组合数
    85. Maximal Rectangle 由1拼出的最大矩形
    750. Number Of Corner Rectangles四周是点的矩形个数
    801. Minimum Swaps To Make Sequences Increasing 为使两个数组严格递增,所需要的最小交换次数
  • 原文地址:https://www.cnblogs.com/zx0423/p/13161620.html
Copyright © 2011-2022 走看看