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