小程序是什么?
可以视为只能用微信打开和浏览的网站,使用 javascript、css、wxml 开发,只能使用微信提供的 API
优势:
微信提供的 API 功能丰富
开发准备
- AppID、AppSecret
- 小程序开发工具
- 导入项目
基础目录结构
- app.js
新建小程序实例,参数为配置对象
1 | App({ |
- app.json
1 | { |
- pages/index/index.js
1 | Page({}) |
pages/index/index.wxml
配置文件 app.json
1 | { |
样式、布局
- 顶层 app.wxss
- 样式文件后缀 .wxss
- 样式语法同 CSS
- 小程序推荐使用 Flex 布局
常用组件
- view
- block
- text
- image
- swiper
1 | <view> |
{{...}} 表示这是一段 javascript 代码
- open-data
1 | <open-data type="userAvatarUrl"></open-data> |
支持的用户信息
- userNickName:用户昵称
- userAvatarUrl:用户头像
- userGender:用户性别
- userCity:用户所在城市
- userProvince:用户所在省份
- userCountry:用户所在国家
- userLanguage:用户语言
- navigator
1 | <navigator url="../second/second">页面跳转</navigator> |
脚本编程
- 数据绑定
1 | Page({ |
<text class="title">hello {{str}}</text>
变量名区分大小写,str 和 Str 是两个不同的变量名
- 全局数据
多个页面共享
1 | App({ |
事件
事件是小程序互动的主要手段,小程序通过接收各种事件,执行回调函数响应交互
- 常见事件
- tap:触摸后离开
- longpress:触摸后,超过 350ms 离开,指定了该事件的回调函数被触发,tap 事件将不被触发
- touchstart:触摸开始
- touchmove:触摸后移动
- touchcancel:触摸后被打断
- touchend:触摸结束
事件传播会有两个阶段:先捕获、后冒泡,同一事件在同一元素上会触发两次
- 通过属性指定事件回调,指定触发阶段
- capture-bind:捕获阶段触发
- capture-catch:捕获阶段触发,中断捕获阶段,取消冒泡阶段
- bind:冒泡阶段触发
- catch:冒泡阶段触发,并取消事件进一步向上冒泡
注意事项
- 事件回调函数的参数是事件对象 event
- 事件回调函数内部 this -> 页面实例
1 | buttonHandler(e) { |
WXML 语法
1 | <text class="title" wx:for="{{items}}"> |
客户端数据储存
wx.setStorageSync('key', value)
wx.getStorageSync('key')
注意事项:客户端存储是不可靠的
远程数据请求
微信规则:后台登记过的服务域名,才可以进行通信。开发者工具可以开放限制
本地设置 -> 不校验合法域名、web-view(业务域名)、TLS 版本以及 HTTPS 证书
根据 JSON 数据文件,自动生成 RESTful 接口
npx json-server db.json
1 | wx.request({ |