# pages.json

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 配置项列表

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 配置项列表

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节点的第一项为应用入口页(即首页)
  • 应用中新增/减少页面,都需要对 pages 数组进行修改
  • 文件名不需要写后缀,框架会自动寻找路径下的页面资源

示例

假使开发目录为:

	
┌─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": { ... }
        }
    ]
}

# 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

  • 状态栏
    • 手机顶部状态栏的背景色、前景色(white/black)与navigationBarBackgroundColor和navigationBarTextStyle相同
    • 当navigationStyle设为custom时,原生导航栏不显示。此时尤其需注意顶部状态栏的问题。
    • 如需动态设置状态栏颜色,使用api uni.setNavigationBarColor
    • 注意不同手机的状态栏高度并不相同,如需获取本机的状态栏高度,使用api uni.getWindowInfo
  • 下拉刷新
    • pages.json中下拉刷新是页面级配置,方便使用但灵活度有限。
    • 如需自定义下拉刷新,请使用scroll-viewlist-view的下拉刷新。

style示例

{
  "pages": [{
      "path": "pages/index/index",
      "style": {
        "navigationBarTitleText": "首页",//设置页面标题文字
        "enablePullDownRefresh":true//开启下拉刷新
      }
    },
    ...
  ]
}

# tabBar 配置项列表

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

# PagesOptionsTabbarList 配置项列表

属性 类型 默认值 必填 描述
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": "接口"
	}]
}

# condition 配置项列表

启动模式配置,仅开发期间生效,用于模拟直达页面的场景。教程详见

属性 类型 默认值 必填 描述
current number - 当前激活的模式,list节点的索引值。
list Array<PagesConditionItem> - 启动模式列表

# PagesConditionItem 配置项列表

属性 类型 默认值 必填 描述
name string - 启动模式名称
path string (string.PageURIString) - 启动页面路径
query string - 启动参数,可在页面的 onLoad 函数里获得

# easycom 配置项列表

easycom是uni-app提供的一种简化组件使用的方式。一般情况下组件放置在符合规范的位置时即可自动引用。

但有时组件的路径或文件名无法满足easycom默认规范要求,可以在pages.json里进行规则的自定义。

自定义easycom的详细教程详见

组件自动引入规则

属性 类型 默认值 必填 描述
autoscan boolean true 是否开启自动扫描,开启后将会自动扫描符合components/组件名称/组件名称.vue/uvue目录结构的组件
custom object - 以正则方式自定义组件匹配规则。如果autoscan不能满足需求,可以使用custom自定义匹配规则

# # 参见

相关 Bug