注释很详细,直接上代码
新增内容:
1.同步和异步API的使用区别
2.异步API的缺陷
源码:
index.wxml
xml
<!-- 列表渲染基础写法,不明白的看上一篇 -->
<view class="students">
<view class="item">
<text>下标</text>
<text>序号</text>
<text>姓名</text>
<text>年龄</text>
<text>性别</text>
</view>
<view wx:for="{{students}}" wx:key="id" wx:for-item="stu"
wx:for-index="idx" class="item">
<text>{{idx}}</text>
<text>{{stu.id}}</text>
<text>{{stu.name}}</text>
<text>{{stu.age}}</text>
<text>{{stu.gender}}</text>
</view>
</view>
<button type="primary" bind:tap="getMsgs" style="margin-top: 40rpx;">获取信息</button>
<view style="margin-top: 20rpx; margin-left: 20rpx;">
<button type="default" size="mini" bind:tap="saveData">保存数据</button>
</view>
index.wxss
css
.item{
display: flex;
/* 水平均分 */
justify-content:space-evenly;
height: 60rpx;
}
index.js
js
Page({
data:{
//存储学生信息的数组
students:[]
},
saveData(){//这里注意格式前面的key是存储的内容的名字,后面的data是需存储的数据的名字
//异步储存数据的方法(上一篇是最常用的同步的方法,区别就是后缀sync)
//其实这种方法比较繁琐,一旦嵌套复杂点success的处理和数据的调用维护起来比较麻烦
//所以能不用则不用,这里的方法了解一下即可,
//其他的方法也是类似的
wx.setStorage({
key:'students',
data:this.data.students,
success:()=>{
wx.showToast({
icon:'none',
title: '存储成功'
})
}
})
}
,
getMsgs(){
//显示加载框
wx.showLoading({
title: 'title',
mask: true,//加上透明蒙版遮挡,防止在加载时用户继续点击触发事件
success: (res) => {},
fail: (res) => {},
complete: (res) => {},
})
wx.request({//自个在服务器写个php就行了
url: 'http://wdhlp.szc007.love/SZCAPI/goods.php',
data:{
key:'123456'
},
success:(res) => {//成功的情况
this.setData({//基础赋值,不明白的看上上上上......一篇
students:res.data.msg//看清楚是冒号是冒号不是等号
})
//showToast和showLoading其实是同一个控件接口
//如果成功则直接显示对话框,这样会自动覆盖之前的加载框
wx.showToast({
icon:'none',//如果图标不是必要的加上这句,否则会限制显示字数
title: '加载成功'
})
},
fail:(res)=>{//如果失败的话则不会覆盖,需要特判关闭一下
wx.hideLoading({
noConflict: true,
success: (res) => {},
fail: (res) => {},
complete: (res) => {},
})
}
})
}
})
效果演示: