小程序代码构成
- JSON配置
1. app.json- 小程序的全局配置
- 包括所有页面路径 界面表现 网络超时时间 底部tap
1
2
3
4
5
6
7
8
9
10
11
12
13{
"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这类和小程序页面相关的配置
- JSON语法
- 数据格式
- 数字
- 字符串
- Bool值
- 数组
- 对象
- Null
- 无法使用注释
- WXML模板
和HTML相似 - WXSS样式
和CSS相似 - JS逻辑交互
小程序宿主环境
渲染层 和 逻辑层
- WebView进行渲染 每个界面一个线程
- JsCore运行脚本
程序与界面
- 微信各护短在打开小程序之前 会将整个小程序的代码包下载到本地
- 通过app.json的pages字段知道你当前小程序的所有页面路径
- 小程序启动 app.js定义的App实例会调用onLaunch
- 先根据logs.json配置生成一个界面 顶部颜色和文字都可以在这个json文件内定义好
然后客户端装载 WXML结构和WXSS样式
最后装载logs.js Page页面构造器生成了一个页面
组件
小程序提供丰富的组件
<map><\map> 在界面显示地图API
可以调用微信提供的能力 获取用户信息 微信支付
调用微信扫一扫能力等
小程序配置
app.json文件用来对微信小程序进行全局配置
配置项
- entryPagePath 小程序默认启动首页
- pages 页面路径列表 必须
- window 全局的默认窗口表现
- tabBar 底部tab栏的表现
- networkTimeout 网络超时时间
- debug 是否开启调试
- functionalPages 是否启用插件功能页
- subpackages 分包结构配置
- workers worker代码放置的目录
- requireBackgroundModes 需要在后台使用的能力 如音乐播放
- requirePrivateInfos 调用的地理位置相关隐私接口
- plugins 使用到的插件
- preloadRule 分包预下载
- resizable PC小程序是否支持用户任意窗口大小改变
- usingComponents 全局自定义组件配置
- permission 小程序接口全线相关设置
- sitemapLocation 指明sitemap.json的位置
- style 指定使用升级后的weui样式
- useExtendedLib 指定需要引用的扩展库
- entranceDeclare 微信消息用小程序打开
- darkmode 小程序支持DarkMode
- themeLocation 之名theme.json的位置
- lazyCodeLoading 配置自定义组件代码按需注入
- supportedMaterials 聊天素材小程序打开相关配置
- serviceProviderTicket 定制化型服务商票据
- embeddedAppldList 半屏小程序
- halfPage 视频号直播半屏场景设置
- debugOptions 调试相关配置
- enablePassiveEvent touch失眠监听是否为passive
- resolveAlias 自定义模块映射规则
- renderer 全局默认的渲染后端
- renderer 渲染后端选项
- componentFramework 组件框架
- miniApp 多端模式场景接入身份管理服务时开启小程序授权页相关配置
- static 正常情况下默认所有资源文件都被打包发布到所有平台
可以通过static字段配置特定每个目录/文件只能发布到特定的平台 - convertRpxToVw 配置是否将rpx单位转为vw单位
page.json
页面配置 单个页面的.json文件会对app.json中相同的配置覆盖掉配置项
- navigationBarBackgroundColor
- navigationBarTextStyle
- navigationBarTitleText
- navigationBarStyle
- homeButton
- backgroundColor
- backgroundColorContent
- backgroundTExtStyle
- backgroundColorTop
- backgroundColorBottom
- enablePullDownRefresh
- onReachBottomDistance
- pageOrientation
- disableScroll
- usingComponents
- initialRenderingCache
- style
- singlePage
- restartStrategy
- handleWebviewPreload
- visulEffectlnBackground
- enablePassiveEvent
- renderer
- rendererOptions
- componentFramework
sitemap配置
通过sitemap.json配置 或者管理后台页面收录开关来配置其小程序是否允许被微信搜索- 配置项
rules 索引规则列表
属性:
- action
- page
- params
- matching
exact
inclusive
exclusive
partial - priority
- 配置项
场景值
ID 说明
1000 其他
1001 发现小程序
1002 微信首页顶部搜素框的搜索结果页
1011 扫描二维码
1012 长按识别二维码
1013 扫描手机相册中的二维码
1019 微信钱包
1025 扫描一维码
框架接口
小程序App
- App(Object obj)
注册小程序 接受一个Object参数 用于指定小程序的生命周期回调
必须在app.js中调用 只能调用一次
参数: 1. onLaunch function 监听小程序初始化
onShow function 监听小程序启动或切入前台
onHide function 监听小程序切后台
onError function 错误监听函数
onPageNotFound function 页面不存在监听函数
onUnhandledRejection function 未处理的Promise拒绝时间监听函数
onThemeChange function 监听系统主题变化
其他
AppObject getApp(Object object)
获取到小程序全局唯一的App实例
-参数
- allowDefault 在App为定义时返回默认实现
页面Page
- Page(Object obj)
注册小程序中的一个页面
- 参数
data 页面初始化数据
options 页面的组件选项
behaviors
onLoad 生命周期回调 监听页面加载
onShow 生命周期回调 监听页面显示
onReady 监听页面初次渲染完成
onHide 监听页面隐藏
onUnload 监听页面卸载
onRouteDone 监听路由动画完成
onPullDownRefresh 简体用户下拉动作
onReachBottom 页面上拉触底事件的处理函数
onShareAppMessage 用户点击右上角的转发
onShareTimeLine 用户点击右上角转发到朋友圈
onAddToFavorites
onPageScroll
onResize
onTabItemTap
onSaveExitState
其他
PageObject[] getCurrentPages()
获取当前页面栈 数组中第一个元素为首页 最后一个元素为当前页面Router
页面路由器对象 可以用过this.pageRouter 或
tthis.router获得当前页面或自定义组件的路由器对对象
- 方法
- switchTab
- reLaunch
- redireactTo
- navigateTo
- navigateBack
自定义组件
- Component(Object object)
创建自定义组件,接受一个Object参数
- 参数 字段
- porperties 对外属性
- data 组件的内部数据
- observers 组件数据字段监听器
- methods 组件的方法
- behaviors
- created 组件生命周期函数
- attached