这里是前端程序员小张!
人海茫茫,感谢这一秒你看到这里。希望我的文章对你的有所帮助!
愿你在未来的日子,保持热爱,奔赴山海!
WXML
模块和WXSS
样式运行于渲染层,渲染层使用 WebView
线程渲染(一个程序有多个页面,会使用多个 WebView的线程)。默认创建的项目里生成了不同类型的文件:
.json
后缀的 JSON
配置文件.wxml
后缀的 WXML
模板文件.wxss
后缀的 WXSS
样式文件.js
后缀的 JS
脚本逻辑文件JSON 是一种数据格式,并不是编程语言,在小程序中,JSON扮演的静态配置的角色。
app.json
是当前小程序的全局配置,包括了小程序的所有页面路径、界面表现、网络超时时间、底部 tab 等。网页编程采用的是 HTML + CSS + JS 这样的组合,其中 HTML
是用来描述当前这个页面的结构,CSS
用来描述页面的样子,JS
通常是用来处理这个页面和用户的交互,在小程序中
WXML
充当的就是类似 HTML
的角色WXSS
具有CSS
大部分的特性JS
脚本文件来处理用户的操作小程序根目录下的 app.json
文件用来对微信小程序进行全局配置
属性 | 类型 | 必填 | 描述 |
---|---|---|---|
pages | string[] | 是 | 页面路径列表 |
window | Object | 否 | 全局的默认窗口表现 |
tabBar | Object | 否 | 底部 tab 栏的表现 |
pages
:页面路径列表
window
:全局的默认窗口展示
tabBar
:底部tab栏的表现
完整请参考官方文档:全局配置 | 微信开放文档 (qq.com)
每一个小程序页面也可以使用 .json 文件来对本页面的窗口表现进行配置
属性 | 类型 | 默认值 | 描述 | 最低版本 |
---|---|---|---|---|
navigationBarBackgroundColor | HexColor | #000000 | 导航栏背景颜色,如 #000000 |
|
navigationBarTextStyle | string | white | 导航栏标题颜色,仅支持 black / white |
|
navigationBarTitleText | string | 导航栏标题文字内容 | ||
navigationStyle | string | default | 导航栏样式,仅支持以下值: default 默认样式 custom 自定义导航栏,只保留右上角胶囊按钮。 |
iOS/Android 微信客户端 7.0.0,Windows 微信客户端不支持 |
homeButton | boolean | false | 在非首页、非页面栈最底层页面或非tabbar内页面中的导航栏展示home键 | 微信客户端 8.0.24 |
backgroundColor | HexColor | #ffffff | 窗口的背景色 | |
backgroundTextStyle | string | dark | 下拉 loading 的样式,仅支持 dark / light |
每个小程序都需要在 app.js
中调用 App
函数 注册小程序示例
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
onLaunch | function | 否 | 生命周期回调——监听小程序初始化。 | |
onShow | function | 否 | 生命周期回调——监听小程序启动或切前台。 | |
onHide | function | 否 | 生命周期回调——监听小程序切后台。 | |
onError | function | 否 | 错误监听函数。 | |
onPageNotFound | function | 否 | 页面不存在监听函数。 | |
onUnhandledRejection | function | 否 | 未处理的 Promise 拒绝事件监听函数。 | |
onThemeChange | function | 否 | 监听系统主题变化 | |
其他 | any | 否 | 开发者可以添加任意的函数或数据变量到 Object 参数中,用 this 可以访问 |
注册App时,我们一般会进行的操作是什么?
小程序的打开场景较多:
如何确定打开的场景?
onLaunch
和onShow
生命周期回调函数中,会有options参数,其中有scene值;可以在Object中定义全局App的数据,定义的数据可以在其他任何页面中访问
globalData: {
token: "",
userInfo: {}
}
小程序中的每个页面, 都有一个对应的js文件, 其中调用Page函数注册页面示例
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
data | Object | 页面的初始数据 | ||
options | Object | 页面的组件选项,同 Component 构造器 中的 options ,需要基础库版本 2.10.1 |
||
behaviors | String Array | 类似于mixins和traits的组件间代码复用机制,参见 behaviors,需要基础库版本 2.9.2 | ||
onLoad | function | 生命周期回调—监听页面加载 | ||
onShow | function | 生命周期回调—监听页面显示 | ||
onReady | function | 生命周期回调—监听页面初次渲染完成 | ||
onHide | function | 生命周期回调—监听页面隐藏 | ||
onUnload | function | 生命周期回调—监听页面卸载 | ||
onRouteDone | function | 生命周期回调—监听路由动画完成 | ||
onPullDownRefresh | function | 监听用户下拉动作 | ||
onReachBottom | function | 页面上拉触底事件的处理函数 | ||
onShareAppMessage | function | 用户点击右上角转发 | ||
onShareTimeline | function | 用户点击右上角转发到朋友圈 | ||
onAddToFavorites | function | 用户点击右上角收藏 | ||
onPageScroll | function | 页面滚动触发事件的处理函数 | ||
onResize | function | 页面尺寸改变时触发,详见 响应显示区域变化 | ||
onTabItemTap | function | 当前是 tab 页时,点击 tab 时触发 | ||
onSaveExitState | function | 页面销毁前保留状态回调 | ||
其他 | any | 开发者可以添加任意的函数或数据到 Object 参数中,在页面的函数中用 this 可以访问。这部分属性会在页面实例创建时进行一次深拷贝。 |