

English
pages.json
文件是 uni-app x 的页面管理配置文件,决定页面文件的路径、窗口样式、原生的导航栏、底部的原生tabbar 等。
所有页面,均需在pages.json中注册,否则不会被打包到应用中。
在HBuilderX中新建页面,默认会在pages.json中自动注册。在HBuilderX中删除页面文件,也会在状态栏提示从pages.json中移除注册。
除了管理页面,pages.json支持对页面进行特殊配置,比如应用首页的tabbar、每个页面的顶部导航栏设置。
但这些uni-app中设计的功能,主要是为了解决页面由webview渲染带来的性能问题,由原生提供一些配置来优化。
uni-app x的app平台,页面不再由webview渲染,其实不需要原生提供特殊配置来优化。但为了开发的便利和多端的统一,也支持了tabbar和导航栏设置。
但不再支持uni-app的app-plus专用配置以及tabbar的midbutton。
如pages.json中配置的导航栏和tabbar功能无法满足你的需求,可以不在pages.json中配置,自己用view做导航栏和tabbar。
hello uni-app x有相关示例,参考:
本文只包括 uni-app x 对 pages.json 支持情况。完整配置项详见 pages.json 页面路由
属性 | 类型 | 默认值 | 必填 | 描述 |
---|---|---|---|---|
globalStyle | globalStyle 配置项列表 | - | 否 | - |
pages | Array<PagesOptionsPage> | - | 是 | 页面路径及窗口表现 |
tabBar | tabBar 配置项列表 | - | 否 | - |
condition | condition 配置项列表 | - | 否 | - |
easycom | easycom 配置项列表 | - | 否 | 组件自动引入规则 |
pages.json 兼容性
安卓系统版本 | 安卓 uni-app | 安卓 uni-app-x | iOS 系统版本 | iOS uni-app | iOS uni-app-x | |
---|---|---|---|---|---|---|
globalStyle | 5.0 | √ | √ | 10.0 | √ | x |
pages | 5.0 | √ | √ | 10.0 | √ | x |
tabBar | 5.0 | √ | √ | 10.0 | √ | x |
condition | 5.0 | √ | √ | 10.0 | √ | x |
easycom | 5.0 | 2.5.5+ | √ | 10.0 | 2.5.5+ | x |
globalStyle节点里是所有页面都生效的全局样式配置。它的配置与页面级style基本相同,但优先级低于页面级style配置。
属性 | 类型 | 默认值 | 必填 | 描述 |
---|---|---|---|---|
navigationBarBackgroundColor | string (string.ColorString) | APP与H5为#F8F8F8,小程序平台请参考相应小程序文档 | 否 | 导航栏背景颜色(同状态栏背景色) |
navigationBarTextStyle | 'white' | 'black' | black | 否 | 导航栏标题颜色,仅支持 black/white(支付宝小程序不支持,请使用 my.setNavigationBar)。 |
navigationBarTitleText | string | - | 否 | 导航栏标题文字内容 |
navigationStyle | 'default' | 'custom' | default | 否 | 导航栏样式,仅支持 default/custom。custom即取消默认的原生导航栏,需看使用注意。 |
enablePullDownRefresh | boolean | false | 否 | 是否开启下拉刷新,详见页面生命周期。 |
globalStyle 兼容性
安卓系统版本 | 安卓 uni-app | 安卓 uni-app-x | iOS 系统版本 | iOS uni-app | iOS uni-app-x | |
---|---|---|---|---|---|---|
navigationBarBackgroundColor | 5.0 | √ | √ | 10.0 | √ | x |
navigationBarTextStyle | 5.0 | √ | √ | 10.0 | √ | x |
navigationBarTitleText | 5.0 | √ | √ | 10.0 | √ | x |
navigationStyle | 5.0 | 2.0.3+ | √ | 10.0 | 2.0.3+ | x |
enablePullDownRefresh | 5.0 | √ | √ | 10.0 | √ | x |
pages节点里注册页面,数据格式是数组,数组每个项都是一个对象,通过path属性指定页面路径,通过style指定该页面的样式配置。
属性 | 类型 | 默认值 | 必填 | 描述 |
---|---|---|---|---|
path | string (string.PageURIString) | - | 是 | 配置页面路径 |
style | style 配置项列表 | - | 否 | - |
PagesOptionsPage 兼容性
安卓系统版本 | 安卓 uni-app | 安卓 uni-app-x | iOS 系统版本 | iOS uni-app | iOS uni-app-x | |
---|---|---|---|---|---|---|
path | 5.0 | √ | √ | 10.0 | √ | x |
style | 5.0 | √ | √ | 10.0 | √ | x |
Tips:
示例
假使开发目录为:
┌─pages
│ ├─index
│ │ └─index.uvue
│ └─login
│ └─login.uvue
├─static
├─main.uts
├─App.uvue
├─manifest.json
└─pages.json
则需要在 pages.json 中填写
{
"pages": [
{
"path": "pages/index/index",
"style": { ... }
}, {
"path": "pages/login/login",
"style": { ... }
}
]
}
用于设置每个页面的状态栏、导航条的颜色、文字等信息。
页面中配置项会覆盖 globalStyle 中相同的配置项
属性 | 类型 | 默认值 | 必填 | 描述 |
---|---|---|---|---|
navigationBarBackgroundColor | string (string.ColorString) | APP与H5为#F8F8F8,小程序平台请参考相应小程序文档 | 否 | 导航栏背景颜色(同状态栏背景色) |
navigationBarTextStyle | 'white' | 'black' | black | 否 | 导航栏标题颜色,仅支持 black/white |
navigationBarTitleText | string | - | 否 | 导航栏标题文字内容 |
navigationStyle | 'default' | 'custom' | default | 否 | 导航栏样式,仅支持 default/custom。custom即取消默认的原生导航栏,需看使用注意。 |
enablePullDownRefresh | boolean | false | 否 | 是否开启下拉刷新,详见页面生命周期。 |
h5 | h5 配置项列表 | - | 否 | - |
mp-alipay | mp-alipay 配置项列表 | - | 否 | - |
style 兼容性
安卓系统版本 | 安卓 uni-app | 安卓 uni-app-x | iOS 系统版本 | iOS uni-app | iOS uni-app-x | |
---|---|---|---|---|---|---|
navigationBarBackgroundColor | 5.0 | √ | √ | 10.0 | √ | x |
navigationBarTextStyle | 5.0 | √ | √ | 10.0 | √ | x |
navigationBarTitleText | 5.0 | √ | √ | 10.0 | √ | x |
navigationStyle | 5.0 | 2.0.3+ | √ | 10.0 | 2.0.3+ | x |
enablePullDownRefresh | 5.0 | √ | √ | 10.0 | √ | x |
Tips
style示例
{
"pages": [{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "首页",//设置页面标题文字
"enablePullDownRefresh":true//开启下拉刷新
}
},
...
]
}
tabbar节点用于配置应用的tabbar,仅支持配置一个。如需在更多页面配置tabbar,请使用view自行封装。
属性 | 类型 | 默认值 | 必填 | 描述 |
---|---|---|---|---|
color | string (string.ColorString) | - | 是 | tab 上的文字默认颜色 |
selectedColor | string (string.ColorString) | - | 是 | tab 上的文字选中时的颜色 |
backgroundColor | string (string.ColorString) | - | 是 | tab 的背景色 |
list | Array<PagesOptionsTabbarList> | - | 是 | tab 的列表,详见 list 属性说明,最少2个、最多5个 tab |
backgroundImage | string | - | 否 | 设置背景图片,优先级高于 backgroundColor |
backgroundRepeat | 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat' | no-repeat | 否 | 设置标题栏的背景图平铺方式 |
redDotColor | string (string.ColorString) | - | 否 | tabbar上红点颜色 |
tabBar 兼容性
安卓系统版本 | 安卓 uni-app | 安卓 uni-app-x | iOS 系统版本 | iOS uni-app | iOS uni-app-x | |
---|---|---|---|---|---|---|
color | 5.0 | √ | √ | 10.0 | √ | x |
selectedColor | 5.0 | √ | √ | 10.0 | √ | x |
backgroundColor | 5.0 | √ | √ | 10.0 | √ | x |
list | 5.0 | √ | √ | 10.0 | √ | x |
backgroundImage | 5.0 | √ | √ | 10.0 | √ | x |
backgroundRepeat | 5.0 | √ | √ | 10.0 | √ | x |
redDotColor | 5.0 | √ | √ | 10.0 | √ | x |
属性 | 类型 | 默认值 | 必填 | 描述 |
---|---|---|---|---|
iconfont | iconfont 配置项列表 | - | 否 | 字体图标,优先级高于 iconPath |
pagePath | string (string.PageURIString) | - | 是 | 页面路径,必须在 pages 中先定义 |
text | string | - | 是 | tab 上按钮文字,在 App 和 H5 平台为非必填。例如中间可放一个没有文字的+号图标 |
iconPath | string (string.ImageURIString) | - | 否 | 图片路径,icon 大小限制为40kb,建议尺寸为 81px * 81px,当 position 为 top 时,此参数无效,不支持网络图片,不支持字体图标 |
selectedIconPath | string (string.ImageURIString) | - | 否 | 选中时的图片路径,icon 大小限制为40kb,建议尺寸为 81px * 81px ,当 position 为 top 时,此参数无效 |
visible | string | - | 否 | 该项是否显示,默认显示 |
PagesOptionsTabbarList 兼容性
安卓系统版本 | 安卓 uni-app | 安卓 uni-app-x | iOS 系统版本 | iOS uni-app | iOS uni-app-x | |
---|---|---|---|---|---|---|
iconfont | 5.0 | 3.4.4+ | √ | 10.0 | 3.4.4+ | x |
pagePath | 5.0 | √ | √ | 10.0 | √ | x |
text | 5.0 | √ | √ | 10.0 | √ | x |
iconPath | 5.0 | √ | √ | 10.0 | √ | x |
selectedIconPath | 5.0 | √ | √ | 10.0 | √ | x |
visible | 5.0 | 3.2.10+ | √ | 10.0 | 3.2.10+ | x |
tabbar示例
"tabBar": {
"color": "#7A7E83",
"selectedColor": "#3cc51f",
"borderStyle": "black",
"backgroundColor": "#ffffff",
"list": [{
"pagePath": "pages/component/index",
"iconPath": "static/image/icon_component.png",
"selectedIconPath": "static/image/icon_component_HL.png",
"text": "组件"
}, {
"pagePath": "pages/API/index",
"iconPath": "static/image/icon_API.png",
"selectedIconPath": "static/image/icon_API_HL.png",
"text": "接口"
}]
}
启动模式配置,仅开发期间生效,用于模拟直达页面的场景。教程详见
属性 | 类型 | 默认值 | 必填 | 描述 |
---|---|---|---|---|
current | number | - | 是 | 当前激活的模式,list节点的索引值。 |
list | Array<PagesConditionItem> | - | 是 | 启动模式列表 |
属性 | 类型 | 默认值 | 必填 | 描述 |
---|---|---|---|---|
name | string | - | 是 | 启动模式名称 |
path | string (string.PageURIString) | - | 是 | 启动页面路径 |
query | string | - | 否 | 启动参数,可在页面的 onLoad 函数里获得 |
easycom是uni-app提供的一种简化组件使用的方式。一般情况下组件放置在符合规范的位置时即可自动引用。
但有时组件的路径或文件名无法满足easycom默认规范要求,可以在pages.json里进行规则的自定义。
自定义easycom的详细教程详见
组件自动引入规则
属性 | 类型 | 默认值 | 必填 | 描述 |
---|---|---|---|---|
autoscan | boolean | true | 否 | 是否开启自动扫描,开启后将会自动扫描符合components/组件名称/组件名称.vue/uvue目录结构的组件 |
custom | object | - | 否 | 以正则方式自定义组件匹配规则。如果autoscan不能满足需求,可以使用custom自定义匹配规则 |