mirror of
https://github.com/ialley-workshop-open/uni-halo.git
synced 2026-09-13 00:50:40 +08:00
271 lines
5.8 KiB
Markdown
271 lines
5.8 KiB
Markdown
---
|
|
name: Pages.json Configuration
|
|
description: Page routing, tab bar, and global style configuration
|
|
---
|
|
|
|
# Pages.json Configuration
|
|
|
|
`pages.json` is the global configuration file for uni-app, defining page routes, window styles, native navigation bar, and tab bar.
|
|
|
|
## Basic Structure
|
|
|
|
```json
|
|
{
|
|
"pages": [
|
|
{
|
|
"path": "pages/index/index",
|
|
"style": {
|
|
"navigationBarTitleText": "Home"
|
|
}
|
|
}
|
|
],
|
|
"globalStyle": {
|
|
"navigationBarTextStyle": "black",
|
|
"navigationBarBackgroundColor": "#F8F8F8"
|
|
},
|
|
"tabBar": {
|
|
"list": [
|
|
{ "pagePath": "pages/index/index", "text": "Home" }
|
|
]
|
|
}
|
|
}
|
|
```
|
|
|
|
## Root Properties
|
|
|
|
| Property | Type | Required | Description |
|
|
|----------|------|----------|-------------|
|
|
| pages | Array | Yes | Page routes |
|
|
| globalStyle | Object | No | Default window style |
|
|
| tabBar | Object | No | Tab bar configuration |
|
|
| condition | Object | No | Launch mode (dev only) |
|
|
| subPackages | Array | No | Sub-packages |
|
|
| preloadRule | Object | No | Preload rules (MP) |
|
|
| easycom | Object | No | Auto component import |
|
|
| leftWindow/topWindow/rightWindow | Object | No | Multi-window (H5) |
|
|
|
|
## Pages Configuration
|
|
|
|
```json
|
|
{
|
|
"pages": [
|
|
{
|
|
"path": "pages/index/index",
|
|
"style": {
|
|
"navigationBarTitleText": "Home",
|
|
"enablePullDownRefresh": true
|
|
}
|
|
},
|
|
{
|
|
"path": "pages/detail/detail",
|
|
"style": {
|
|
"navigationBarTitleText": "Detail",
|
|
"navigationStyle": "custom"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
```
|
|
|
|
### Page Style Options
|
|
|
|
| Property | Type | Description |
|
|
|----------|------|-------------|
|
|
| navigationBarTitleText | String | Navigation title |
|
|
| navigationBarTextStyle | String | Title color: black/white |
|
|
| navigationBarBackgroundColor | HexColor | Nav background |
|
|
| navigationStyle | String | default/custom |
|
|
| enablePullDownRefresh | Boolean | Enable pull refresh |
|
|
| backgroundColor | HexColor | Background color |
|
|
| backgroundTextStyle | String | dark/light |
|
|
| onReachBottomDistance | Number | Bottom distance (px) |
|
|
| disableScroll | Boolean | Disable scroll (MP) |
|
|
| usingComponents | Object | Using custom components |
|
|
|
|
## Global Style
|
|
|
|
Applied to all pages unless overridden.
|
|
|
|
```json
|
|
{
|
|
"globalStyle": {
|
|
"navigationBarTextStyle": "black",
|
|
"navigationBarTitleText": "My App",
|
|
"navigationBarBackgroundColor": "#F8F8F8",
|
|
"backgroundColor": "#F8F8F8",
|
|
"backgroundTextStyle": "dark",
|
|
"enablePullDownRefresh": false,
|
|
"onReachBottomDistance": 50,
|
|
"rpxCalcMaxDeviceWidth": 960,
|
|
"rpxCalcBaseDeviceWidth": 375,
|
|
"rpxCalcIncludeWidth": 750
|
|
}
|
|
}
|
|
```
|
|
|
|
## Tab Bar Configuration
|
|
|
|
```json
|
|
{
|
|
"tabBar": {
|
|
"color": "#7A7E83",
|
|
"selectedColor": "#3cc51f",
|
|
"backgroundColor": "#ffffff",
|
|
"borderStyle": "black",
|
|
"list": [
|
|
{
|
|
"pagePath": "pages/index/index",
|
|
"text": "Home",
|
|
"iconPath": "static/image/home.png",
|
|
"selectedIconPath": "static/image/home-active.png"
|
|
},
|
|
{
|
|
"pagePath": "pages/category/category",
|
|
"text": "Category",
|
|
"iconPath": "static/image/cat.png",
|
|
"selectedIconPath": "static/image/cat-active.png"
|
|
},
|
|
{
|
|
"pagePath": "pages/cart/cart",
|
|
"text": "Cart",
|
|
"iconPath": "static/image/cart.png",
|
|
"selectedIconPath": "static/image/cart-active.png"
|
|
},
|
|
{
|
|
"pagePath": "pages/user/user",
|
|
"text": "User",
|
|
"iconPath": "static/image/user.png",
|
|
"selectedIconPath": "static/image/user-active.png"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
```
|
|
|
|
### Tab Bar Properties
|
|
|
|
| Property | Type | Description |
|
|
|----------|------|-------------|
|
|
| color | HexColor | Unselected text color |
|
|
| selectedColor | HexColor | Selected text color |
|
|
| backgroundColor | HexColor | Background color |
|
|
| borderStyle | String | black/white |
|
|
| list | Array | Tab items (2-5 items) |
|
|
| position | String | bottom/top |
|
|
|
|
### Tab Item Properties
|
|
|
|
| Property | Type | Required | Description |
|
|
|----------|------|----------|-------------|
|
|
| pagePath | String | Yes | Page path |
|
|
| text | String | Yes | Tab text |
|
|
| iconPath | String | No | Icon path (81x81px) |
|
|
| selectedIconPath | String | No | Selected icon |
|
|
|
|
### Custom Tab Bar (WeChat/QQ/Douyin)
|
|
|
|
```json
|
|
{
|
|
"tabBar": {
|
|
"custom": true,
|
|
"list": [
|
|
{ "pagePath": "pages/index/index", "text": "Home" }
|
|
]
|
|
}
|
|
}
|
|
```
|
|
|
|
Create `custom-tab-bar/index` component in root.
|
|
|
|
## Sub-packages
|
|
|
|
Split app into smaller chunks for faster loading.
|
|
|
|
```json
|
|
{
|
|
"subPackages": [
|
|
{
|
|
"root": "packageA",
|
|
"pages": [
|
|
{ "path": "pages/cat/cat" },
|
|
{ "path": "pages/dog/dog" }
|
|
]
|
|
},
|
|
{
|
|
"root": "packageB",
|
|
"pages": [
|
|
{ "path": "pages/apple/apple" },
|
|
{ "path": "pages/banana/banana" }
|
|
]
|
|
}
|
|
],
|
|
"preloadRule": {
|
|
"pages/index/index": {
|
|
"network": "all",
|
|
"packages": ["packageA"]
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## EasyCom (Auto Component Import)
|
|
|
|
```json
|
|
{
|
|
"easycom": {
|
|
"autoscan": true,
|
|
"custom": {
|
|
"^u--(.*)": "uview-plus/components/u-$1/u-$1.vue",
|
|
"^up-(.*)": "uview-plus/components/u-$1/u-$1.vue",
|
|
"^uni-(.*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue"
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
With this config, components are auto-imported without registration.
|
|
|
|
## Conditional Compilation in Config
|
|
|
|
```json
|
|
{
|
|
"pages": [
|
|
{
|
|
"path": "pages/index/index",
|
|
"style": {
|
|
"navigationBarTitleText": "Home"
|
|
}
|
|
}
|
|
],
|
|
"globalStyle": {
|
|
"navigationBarTextStyle": "black"
|
|
},
|
|
"condition": {
|
|
"current": 0,
|
|
"list": [
|
|
{
|
|
"name": "test",
|
|
"path": "pages/test/test",
|
|
"query": "id=1"
|
|
}
|
|
]
|
|
},
|
|
"mp-weixin": {
|
|
"appid": "wx...",
|
|
"setting": {
|
|
"urlCheck": false
|
|
}
|
|
},
|
|
"app-plus": {
|
|
"splashscreen": {
|
|
"alwaysShowBeforeRender": true
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
<!--
|
|
Source references:
|
|
- https://gitcode.com/dcloud/unidocs-zh/blob/main/docs/collocation/pages.md
|
|
-->
|