开发文档链接
文件
全局文件:
- app.js 全局 js 文件:js 代码全局可以调用
- app.json 全局配置文件:导航栏,背景颜色,标题,窗口配置
- app.wxss 全局样式文件:统一样式
- utils 文件夹:封装自定义的工具
- pages 小程序页面文件夹:所有的页面都在该文件夹下管理,pages 文件夹中,一个文件夹代表一个页面。
局部文件:一个页面的文件
- wxml
- wxss
- js
- json
app.json
1 | { |
若要添加页面或者直接在"pages": ["pages/index/index", "pages/logs/logs"]中添加,IDE 会直接生成一个文件夹及内部页面文件。
若在全局配置中窗口界面配置了"navigationBarBackgroundColor": "#fff"的同时,在单个页面(例如 logo 页面)的配置文件也配置了"navigationBarBackgroundColor": "#000",这是只有当跳转到(例如 logo 页面)时,导航栏颜色才会变成#000。
微信小程序中的 js
变量
js 变量:用于储存信息的容器
声明时使用 var+变量名,变量类型通过赋值来决定
注意:变量必须一字母开头,也可以$和_开头,大小写敏感
1 | var answer = "It's alright"; |
对象
1 | var person = { |
对象寻址方式
1 | name = person.lastname; |
运算
+,-,*,/,%
比较运算符,返回值均为FALSE&TRUE
逻辑运算符
&&,||,!
1 | y = 5; |
条件
if
1 | if (condition) { |
循环
for
1 | for (语句1; 语句2; 语句3) { |
小程序中自动生成的 js 代码
1 | // pages/index/index.js |
page
1 | Page({ |
data 和函数
data 对象
1 | data:{ |
function 函数
1 | function(参数){ |
小程序的生命周期和回掉函数
1 | 加载 |
当程序运行到各个生命周期函数的节点时,会执行生命周期回调函数
回掉函数:
- onLoad() 页面加载时触发
- onShow() 页面显示/切入前台触发
- onReady() 页面初次渲染完成时触发
运行完上面流程即进入激活状态 - onShow() 页面显示/切入前台触发
- onHide() 页面影藏/切入后台触发
- onUnload() 页面卸载时触发
- onPullDownRefresh() 下拉刷新
- onReachBottom()上拉触底事件
- onShareAppMessage() 转发按钮,自定义转发内容
事件响应
事件:视图层到逻辑层的通讯方式,将用户的行为反馈到逻辑层
即事件可以通过在 wxml 中绑定在组件上,达到触发条件时,会触发相应的事件处理函数(事件响应)对象可以额外携带如 id,dataset 等额外信息
组建事件响应:
-
组件上绑定事件处理函数
点击事件绑定处理函数的方法:使用bindtap属性,属性值为 js 中的事件的事件处理函数的函数名1
2
3<view id="tapTest" data-hi="WeChat" bindtab="tapName">
Click me!
</view> -
Page 中写相应函数处理事件,单数是 event,函数名要和 wxml 中绑定的 bindtap 属性属性值一致
1
2
3
4
5Page({
tapName(event) {
console.log(event); //该语句将获取到的数据打印在了编译器的窗口中
},
});
小程序 js 数据处理
this 关键字
this:当前对象的一个引用,在使用时往往指向的是上一层对象,在函数中执行时指向的是全局对象
访问页面数据:this.data 页面初始数据的那部分
调用页面内的函数:this.onload() 执行这一语句就会执行 onload()函数
tips: 若在 API 中使用 this,需要在调用 API 前暂存指向页面的 this,例
1 | var that = this; |
调用方法
1 | Page({ |
页面数据更新
1 | this.setData({ |
不同页面的数据出传递
方法有二,其一,页面跳转过程中携带参数。其二,将数据存于全局数据中,各个页面在从全局中读取
第二种用法:在 app.js 中
1 | App({ |
各个页面与全局数据进行交互,使用getApp()历程如下:
页面的 js 文件如下
1 | onLoad:function(options){ |
app.js 文件中含有如下
1 | App({ |
微信小程序的 API 介绍
API 的类型:
- 事件监听 API:以 on 开头用于监听
- 同步 API:以 Sync 结尾的 API 都是同步 API,起执行结果可通过函数返回值直接获取。当执行到 API 时,停止组件进程等待 API 执行完。
- 异步 API:都接受一个 object 类型的参数。程序会启动一个分支来运行 API
API 内容
- success 部分:接口调用成功的回调函数
- fail 部分:接口调用失败的回调函数
- complete 部分:接口调用结束的回调函数
微信登陆 API
1 | wx.login({ |
Object 类型参数包含的字段
| 属性 | 类型 | 说明 |
|---|---|---|
| errMsg | string | 错误信息,若成功为 |
| errCode | number | 错误码,成功时为 0 |
| 其他 | Any | 接口返回数据 |
调用 API 进行页面互交
- 消息提示框
1 | wx.showToast({ |
- 模态弹窗
1 | wx.showModal({ |
- Loading 提示框
1 | wx.showLoading({ |
- 页面路由 API
wx.relaunch()关闭所有页面,打开到指定页面wx.redirectTo()关闭当前页面,跳转到指定页面wx.navigateTo()保留当前页面,跳转到指定页面wx.navigateBack()关闭当前页面,返回上一级或多级页面
1 | wx.relaunch({ |