代码构成
JSON配置,静态配置
小程序配置 app.json
- 当前小程序的全局配置。所有页面路径,界面表现,网络超时时间,底部tab等
- pages字段:描述当前小程序所有页面路径
- window字段:定义小程序所有页面的顶部背景颜色,文字颜色定义等
{"pages":["pages/index/index","pages/logs/logs"],"window":{"backgroundTextStyle":"light","navigationBarBackgroundColor":"#fff","navigationBarTitleText":"Weixin","navigationBarTextStyle":"black"}}
工具配置 project.config.json
- 微信开发者工具的配置文件
- 页面配置 page.json
- 用来表示 pages/logs目录下的 logs.json 这类和小程序页面相关的配置
- 如果你整个小程序的风格是蓝色调,那么你可以在
app.json里边声明顶部颜色是蓝色即可。实际情况可能不是这样,可能你小程序里边的每个页面都有不一样的色调来区分不同功能模块,因此我们提供了page.json,让开发者可以独立定义每个页面的一些属性,例如刚刚说的顶部颜色、是否允许下拉刷新等等。
- WXML模板
- 类似 HTML 的角色
- MVVM的开发模式(如React、Vue),提倡把渲染和逻辑分离
- 简单来说,就是不再让 JS 直接操控 DOM。JS 只管理状态即可,然后再通过一种模板语法来描述状态和界面结构的关系即可
WXSS 样式
渲染层和逻辑层
- WXML模板和WXSS样式工作在渲染层,JS 脚本工作在逻辑层
- WebView线程管理渲染层,一个小程序存在多个界面,所以渲染层存在多个 WebView 线程
- JsCore线程管理逻辑层,运行 JS 脚本

程序与界面
- 微信客户端在打开小程序之前,会把整个小程序的代码包下载到本地
- 紧接着通过 app.json 的 pages 字段就可以知道当前小程序的所有页面路径
- 写在 pages 字段的第一个页面就是这个小程序的首页
- 小程序启动之后,在 app.js 定义的 App 实例的 onLaunch 回调会被执行
- 整个小程序只有一个 App 实例,是全部页面共享的
- 简单看看小程序的一个页面怎么写
- pages/logs/logs
- 微信客户端先根据 logs.json 配置生成一个界面
- 紧接着装载页面的 WXML 结构和 WXSS 样式
- 最后装载 logs.js
Page({data: { // 参与页面渲染的数据,和 index.wxml一起渲染出最终的节后logs: []},onLoad: function () {// 页面渲染后 执行,在这个回调中处理逻辑}})
组件
API
主题部分,三个文件,必须放在项目的根目录 | 文件 | 必须 | 作用 | | —- | —- | —- | | app.js | 是 | 小程序逻辑 | | app.json | 是 | 小程序公共配置 | | app.wxss | 否 | 小程序公共样式表 |
一个页面,四个文件
- 为了方便开发者减少配置项,描述页面的四个文件必须具有相同的路径和文件名 | 文件类型 | 必需 | 作用 | | —- | —- | —- | | js | 是 | 页面逻辑 | | wxml | 是 | 页面结构 | | json | 否 | 页面配置 | | wxss | 否 | 页面样式表 |


