ES6 map()函数 (选择作用)
var users = [
{name: "张含韵", "email": "zhang@email.com"},
{name: "江一燕", "email": "jiang@email.com"},
{name: "李小璐", "email": "li@email.com"}
];
var emails = users.map(function (user) { return user.email; });
console.log(emails.join(", "));
// zhang@email.com, jiang@email.com, li@email.com
此方法用于我对于获取总数据中选择data里面的数组去选择我需要的部分
小程序本地储存
wx.setStorageSync('key','value);
wx.getStorageSync( 'key');
web中存数据会先调用toString() 把数据变为字符串 再进行储存
小程序存的数据什么类型 获取的就是什么类型
onload(option)
{
//option里面包含我从其他页面跳转url带参的参数
}
组件的子传父 父传子
<!-- 监听自定义事件 bindtabsitemchange是子组件向父组件传值加bind -->
<tab tabs="{{tabs}}" bindtabsitemchange="handitemchange"></tab>
子组件接受参数
properties: {
tabs:{
type:Array,
value:[]
}
},
子组件向父组件传值
methods: {
//点击事件
handleitemtap(e)
{
const {index}=e.currentTarget.dataset
this.triggerEvent("tabsitemchange",{index} )
}
}
父组件对传值的处理
//tab子组件点击事件
handitemchange(e)
{
console.log(e);
//获取被点击的标题索引
const {index}=e.detail;
let {tabs}=this.data
tabs.forEach((value,i)=>i==index?value.isactive=true:value.isactive=false)
this.setData({
//更新父组件的内容
tabs
})
},
## 用到的周期函数
//只用加载该页面才调用
onLoad: function (options) {
console.log(options);
this.qureyparams.cid=options.cid
console.log(this.qureyparams);
this.getgoodslist()
},
//每次回到该页面就会调用
onShow(){
...
},
//页面滚动条触底事件 要判断是否有下一页数据 总页数 页码 页码*获取条数>=总数据 没有下一页
onReachBottom()
{
//判断是否还有下一页
if(this.qureyparams.pagenum>=this.totalpagesize)
{
//给个提示
wx.showToast({
title:'',
icon:'none',
duration:1500,
})
}
else{
this.qureyparams.pagenum++
console.log(this.qureyparams.pagenum);
this.getgoodslist()
}
},
//下拉刷新触发函数
onPullDownRefresh(){
//1 重置数组
this.setData({
goodslist:[]
})
//重置页数
this.qureyparams.pagenum=1
//重新发请求
this.getgoodslist()
//在方法里面手动关闭下拉刷新等待效果
//( wx.stopPullDownRefresh())
},
对于下拉刷新可以在需要的文件下加"enablePullDownRefresh": true
也可以在app.json全局加刷新效果 包括下拉刷新的样式也是可以添加的
"window":{
"backgroundTextStyle":"light",
"navigationBarBackgroundColor": "#eb4450",
"navigationBarTitleText": "fanfan",
"navigationBarTextStyle":"white",
"backgroundColor": "#0094ff"
},
对于下拉加载新数据的方法
先对原先数据进行解构后,把新数据加进去,而不是刷新数组
this.setData({
goodslist:[...this.data.goodslist,...res.data.message.goods]
})
小程序对于用户权限调用以及获取
//权限给与设置 ***
//调用小程序内置api 获取用户的收货地址 追踪授权状态 SCOPE
//增加收货地址
handleaddress() {
//打印授权的状态
wx.getSetting({
success: (res) => {
console.log(res);
//判断用户是否给权限
const scopeaddress = res.authSetting["scope.address"]
//用户同意权限 直接调用
if (scopeaddress || scopeaddress == undefined) {
wx.chooseAddress({
success: (result) => {
//存地址到缓存
wx.setStorageSync('address', result);
console.log(result);
},
});
}
//如果没给 调用接口让用户同意 打开授权页面
else {
wx.openSetting({
success: (result) => {
console.log(result);
//调用用户同意权限接口
wx.chooseAddress({
success: (res) => {
wx.setStorageSync('address', res);
console.log(res);
},
});
},
});
}
},
});
},