微信小程序的易错点,与一些常用的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 }