app.js入口文件
all_methods(){
console.log('全局都可以使用的方法');
},
globalData: {
info:"这是全局变量"
}
//其它文件调用
const app = getApp();
app.all_methods()
console.log(app.globalData.info="淼森润林"); //调用也设置均可
语法
//使用变量
console.log(this.data.mis);
<input type="text" value="{{mis}}" style="border:1px solid" /> //变量元素内外都加括号,没有双向绑定
//函数的使用
this.fnrender();
//for循环
<view wx:for="{{arr}}" wx:for-item='ite' wx:for-index="i" wx:key="i" >{{ite}},{{i}}</view> //key唯一变量不加{{}}的地方
//if & else
<view wx:if='{{bool}}' >显示</view>
<view wx:else='{{bool}}' >隐藏</view>
组件
弹框
<page-container show='true' position='right' custom-style='margin-left:200px'></page-container> //position弹出位置
滑动
<swiper indicator-dots='true' style="height: 80px;">
<swiper-item>
<view style="background: red;height: 50px;">aaa</view>
</swiper-item>
<swiper-item>
<view style="background: yellow;height: 50px;">aaa</view>
</swiper-item>
</swiper>
图片容器
//图片文件夹要放在pages文件夹下,路径只要写到当前路径以外的路径就是错误
<image src="https://profile.csdnimg.cn/6/A/F/1_m0_57048774" style="width: 200px;height: 200px;"></image>
滚动条
<scroll-view style="height: 200px;background: red;overflow: hidden;" scroll-y="true">
.........
</scroll-view>
三级选择器
<picker mode="date">选择日期</picker>
单选框
<radio-group bindchange="radio"> //函数传的参为选中值
<radio value="男">男</radio>
<radio value="女">女</radio>
<radio value="人妖">人妖</radio>
</radio-group>
方法
//绑定事件
<button bindtap="fnclick">点击</button> //bindtap === @click
<button bindtap="fnclick" data-id='999' data-panda='大熊猫' >点击</button> //data传参固定写法
// 长按事件
bindlongpress='longs'
//响应式生效
this.data.arr.push("大熊猫");
this.setData({arr:this.data.arr})
获取用户信息
<button bindtap="getinfo">获取用户信息</button>
getinfo(){
wx.getUserProfile({
desc:"测试",
success(e){console.log(e) }
})
}
获取手机号
<button open-type="getPhoneNumber" bindgetphonenumber='getphone' >获取手机号</button>
//获取到的是加密手机号
getphone(v){ console.log(v) }
发送请求
<button bindtap="getcode">获取token</button>
getcode(e){
wx.login({ //登录方法获取code
success(e){
console.log(e);
wx.request({
url: 'http://api_devs.wanxikeji.cn/api/codeExchangeOpenid',
method:"post",
data:{ code:e.code },
success(res){ console.log(res) } , //返回数据
fail(err){ console.log(err) } //返回错误
})
}
})
}
缓存
wx.setStorageSync('key', 'value') //设置
wx.getStorageSync('token') //获得
wx.removeStorageSync('key') //移除
wx.clearStorageSync() //清除
表单
<form bindsubmit="submits"> //函数参数为数据内容
<input type="text" style="border: 1px solid;" placeholder="用户名" name='user' />
<radio-group name='radio'> //绑定name获取内容
<radio value="男">男</radio>
<radio value="女">女</radio>
<radio value="人妖">人妖</radio>
</radio-group>
<picker mode="date" name='picker'>三级联动</picker>
<button form-type="submit">提交</button> //绑定提交
</form>
路由跳转
//不能跳到 tabbar 页面
wx.navigateTo({ url:"/pages/logs/logs })
//只能跳转到 tabBar 页面 不能带参数
wx.switchTab
路由传参
//发送页(tabbar不能路由传参)
wx.navigateTo({ //不能跳到 tabbar 页面
url:"/pages/logs/logs?id=999&name='淼森润林'"
})
//接收页 接收参数
onLoad(options) {console.log(options)}
tabBar刷新
//只有非tabBer页进入刷新
onShow() { this.onLoad() },
留言
原属上上使用方法 不管是元素内还是属性内使用变量都要加{{}} ,也可以在里面写方法
需要双向绑定的值 需要在实例化一次
使用微信定义的一些方法除函数外都需要加 wx.
普通页面跳转tabBar是不会刷新的
开发中遇到的难点
在数组中要求只有一个满足条件时 不应该在循环里去做判定 应该在循环里将值记录下来 去对值做判断
数组里存变量问题 值都指向一个地址 要想值地址不一需深拷贝后加入进去