欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

微信小程序的易错点,与一些常用的js处理

程序员文章站 2023-10-28 14:47:58
本文只要介绍微信小程序的易错点,与一些常用的js处理。 (一)全局的变量 1.定义全局的变量app.js globaldata: { imgsrc: '...

本文只要介绍微信小程序的易错点,与一些常用的js处理。

(一)全局的变量

1.定义全局的变量app.js

globaldata: {
    imgsrc: 'https://yesmyart.cn/public/img/common/',//封装好代码便于修改,提高效率
  }

2.调用全局的变量

var app = getapp();//定义一个app
page({
  data: {
    imgsrc: app.globaldata.imgsrc,//调用全局的变量
  },
  onload: function (options) {
     //此处直接调用的是全局globaldata
    var imgsrc=this.data.app.globaldata.imgsrc;
    console.log(imgsrc)
     //此处通过调用的是局部data,相比前者比较优雅,实现的结果是相同的
    var imgsrc=this.data.imgsrc
    console.log(imgsrc)
  }
  })

3.给全局变量赋值或者定义一个新的值

//法1:同步调用,
app.globaldata.imgsrc = openid;//此处的openid为一个变量,赋值成功后就变成,如下:只是动态的改变,执行当前代码片段的时候,不是永久的
globaldata: {
    imgsrc: openid,
  }

//法2:异步调用
this.setglobaldate({
    imgsrc: openid,
})//实现上述效果,个人建议使用异步调用,微信小程序比较支持异步调用,前者容易出现一些bug或者写法的修改
globaldata: {
    imgsrc: openid,
}

(二)定时器三秒后跳转

//定时器登录识别
      var indexint=setinterval(function () {
        var userid = wx.getstoragesync("userid")
        if (userid == "" || userid == undefined) { //此处为判断用户是否登录的定时器,如果没有登录则持续监听,根据需要可以弹窗提示等         
        }
        else { 
          //清除定时器
          clearinterval(indexint)
          wx.switchtab({
            url: '../index/index_decorate/index_decorate'
          })//switchtab是因为小程序tabbar被选中后不能直接跳转,需要使用此方法才能实现跳转
        }
      }, 3000)//设置跳转的时间
//定时器3秒跳转
var indexint=setinterval(function () {
          wx.switchtab({//其他跳转方式wx.navigateto和wx.redirectto
            url: '../index/index_decorate/index_decorate'
          })//switchtab是因为小程序tabbar被选中后不能直接跳转,需要使用此方法才能实现跳转

      }, 3000)//设置跳转的时间

(三)字符串对象的转化

1.string字符串字符串转对象object
    var str1 = list.label;
    console.log(typeof str1)
    list.label = str1.split(",");
    console.log(typeof list.label)
2.string字符串转json对象
var str=字符串
var json_con = json.parse(str)//即可成功转化为json对象

(四)字符串或数组的截取前3个修项

     var arr = list.label// list.label为数组集合
     list.label = arr.slice(0, 3)//0表示第一个开始,3表示从第一个开始到第三个即label[0],label[1],label[2]

(五)动态改变当前的标题

// 改变当前的标题
  wx.setnavigationbartitle({ title: res.data.info.name })//title:标题内容

(六)分享链接返回对应的路径(详情页为例)

 onshareappmessage: function (res) {
    if (res.from === 'button') {
    }
    return {
      title: '我是标题',
      path: 'pages/index/index_decorate_detail/index_decorate_detail?id=' + this.data.id+'&idx='+idx,//此处的id为详情页id,在该页面的js需要有对应的js的onload(options)接收函数id=options.id即可在用户分享点击的时候返回分享页.此处的idx为模拟多函数传输,接收方式仍为options.idx
    }
  }
  ,

(七)日期的截取

  // 截取日期前4位
     if (list.created_time) {//判断日期说否存在,如果日期必定存在,可以不用此方法识别
         var str = list.created_time;//list.created_time为20170412
         list.created_time = str.substr(0, 4);//结果显示为2017
       }