小程序是什么?
可以视为只能用微信打开和浏览的网站,使用 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({  | 

