微信小程序学习笔记
一、小程序代码组成
1.1 JSON配置
1 | { |
注意点:
1.json的key必须包裹在一个双引号中;
2.json的值支持以下数据类型:
数字:包含浮点数和整数
字符串:需要包裹在双引号中
Bool值,true或者false
数组:需要包裹在方括号中[]
对象:需要包裹在大括号中{}
Null
3.json文件无法使用注释
1.2 WXML模板
1.数据绑定
1 | <!--pages/wxml/index.wxml--> |
2.属性值的绑定(属性值必须被包裹在双引号中)
1 | <text data-test="{{test}}"> hello world</text> |
- 语法内可进行简单的逻辑运算
1 | 三元运算 |
4.条件逻辑
1 | <view wx:if="{{condition}}"> True </view> |
5.列表渲染
1 | <view wx:for="{{array}}"> |
6.wx:key的值以两种形式提供:
字符串,代表在 for 循环的 array 中 item 的某个 property,该 property 的值需要是列表中唯一的字符串或数字,且不能动态改变。
保留关键字 this 代表在 for 循环中的 item 本身,这种表示需要 item 本身是一个唯一的字符串或者数字
1 | <switch wx:for="{{objectArray}}" wx:key="unique" > {{item.id}} </switch> |
7.模板
1 | <!-- |
8.引用
WXML 提供两种文件引用方式import和include。
import 可以在该文件中使用目标文件定义的 template,只会 import 目标文件中定义的 template,而不会 import 目标文件中 import 的 template,简言之就是 import 不具有递归的特性
include 可以将目标文件中除了
1.3 WXSS 样式
1.在WXSS中,引入了rpx(responsive pixel)尺寸单位,标准为750*1334rpx,标准和iphone6一样
2.引用
引用另一个样式文件:@import './test_0.wxss'
3.内联样式
1 | <view style="color: red; font-size: 48rpx"></view> |
4选择器
| 类型 | 选择器 | 样例 | 样例描述 |
|---|---|---|---|
| 类选择器 | .class | .intro | 选择所有拥有 class=”intro” 的组件 |
| id选择器 | #id | #firstname | 选择拥有 id=”firstname” 的组件 |
| 元素选择器 | element | view checkbox | 选择所有文档的 view 组件和所有的 checkbox 组 |
| 伪元素选择器 | ::after | view::after | 在 view 组件后边插入内容 |
| 伪元素选择器 | ::before | view::before | 在 view 组件前边插入内容 |

1.4JavaScript 脚本
生命周期函数
| 参数属性 | 类型 | 描述 |
|---|---|---|
| onLoad | Function | 生命周期函数–监听页面加载,触发时机早于onShow和onReady |
| onReady | Function | 生命周期函数–监听页面初次渲染完成 |
| onShow | Function | 生命周期函数–监听页面显示,触发事件早于onReady |
| onHide | Function | 生命周期函数–监听页面隐藏 |
| onUnload | Function | 生命周期函数–监听页面卸载 |
| onPullDownRefresh | Function | 页面相关事件处理函数–监听用户下拉动作 |
| onReachBottom | Function | 页面上拉触底事件的处理函数 |
| onShareAppMessage | Function | 用户点击右上角转发 |
二、小程序界面
2.1组件
一个小程序页面可以分解成多个部分组成,组件就是小程序页面的基本组成单元。为了让开发者可以快速进行开发,小程序的宿主环境提供了一系列基础组件。
组件共有属性
| 属性名 | 类型 | 描述 | 其他说明 |
|---|---|---|---|
| id | String | 组件的唯一标示 | 保持整个页面唯一 |
| class | String | 组件的样式类 | 在对应的WXSS中定义的样式类 |
| style | String | 组件的内联样式 | 可以通过数据绑定进行动态设置的内联样式 |
| hidden | Boolean | 组件是否显示 | 所有组件默认显示 |
| data-* | Any | 自定义属性 | 组件上触发的事件时,会发送给事件处理函数 |
| bind / catch | EventHandler | 事件 | 绑定、捕获事件 |
微信官方组件https://developers.weixin.qq.com/miniprogram/dev/component/
三方组件:https://youzan.github.io/vant-weapp/#/intro
2.2常见事件
| 类型 | 触发条件 |
|---|---|
| touchstart | 手指触摸动作开始 |
| touchmove | 手指触摸后移动 |
| touchcancel | 手指触摸动作被打断,如来电提醒,弹窗 |
| touchend | 手指触摸动作结束 |
| tap | 手指触摸后马上离开 |
| longpress | 手指触摸后,超过350ms再离开,如果指定了事件回调函数并触发了这个事件,tap事件将不被触发 |
| longtap | 手指触摸后,超过350ms再离开(推荐使用longpress事件代替) |
| transitionend | 会在 WXSS transition 或 wx.createAnimation 动画结束后触发 |
| animationstart | 会在一个 WXSS animation 动画开始时触发 |
| animationiteration | 会在一个 WXSS animation 一次迭代结束时触发 |
| animationend | 会在一个 WXSS animation 动画完成时触发 |
2.3page生命周期函数

三、API
宿主环境提供了丰富的API,可以很方便调起微信提供的能力.
3.1路由跳转
wx.switchTab(Object object) 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面
wx.navigateTo(Object object)保留当前页面,跳转到应用内的某个页面。但是不能跳到 tabbar 页面
3.2网络请求
1 | wx.request({ |
| 属性 | 类型 | 默认值 | 必填 | 说明 |
|---|---|---|---|---|
| url | string | 是 | 开发者服务器接口地址 | |
| data | string/object/ArrayBuffer | 否 | 请求的参数 | |
| header | Object | 否 | 设置请求的 header,header 中不能设置 Referer。 content-type 默认为 application/json |
|
| timeout | number | 否 | 超时时间,单位为毫秒 | |
| method | string | GET | 否 | HTTP 请求方法 |
| dataType | string | json | 否 | 返回的数据格式 |
| responseType | string | text | 否 | 响应的数据类型 |
| enableCache | boolean | false | 否 | 开启 cache |
| success | function | 否 | 接口调用成功的回调函数 | |
| fail | function | 否 | 接口调用失败的回调函数 | |
| complete | function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
常用object.method 的合法值
| 值 | 说明 |
|---|---|
| GET | HTTP 请求 GET |
| HEAD | HTTP 请求 HEAD |
| POST | HTTP 请求 POST |
| PUT | HTTP 请求 PUT |
3.3 数据缓存
wx.setStorage(Object object) 将数据存储在本地缓存中指定的 key 中,所有数据存储上限为 10MB。
1 | wx.setStorage({ |
wx.getStorage(Object object) 从本地缓存中异步获取指定 key 的内容
3.4 其他
更多api可以查看官方文档:https://developers.weixin.qq.com/miniprogram/dev/api/