globalStyle全局配置
pages.json
是項目的配置,而這個配置文件里的globalStyle
選項是項目的全局樣式配置
用於設置應用的狀態欄、導航條、標題、窗口背景色等。詳細文檔
屬性 | 類型 | 默認值 | 描述 |
---|---|---|---|
navigationBarBackgroundColor | HexColor | #F7F7F7 | 導航欄背景顏色(同狀態欄背景色) |
navigationBarTextStyle | String | white | 導航欄標題顏色及狀態欄前景顏色,僅支持 black/white |
navigationBarTitleText | String | 導航欄標題文字內容,注意頁面級配置會覆蓋全局配置 | |
backgroundColor | HexColor | #ffffff | 窗口的背景色 |
backgroundTextStyle | String | dark | 下拉 loading 的樣式,僅支持 dark / light |
enablePullDownRefresh | Boolean | false | 是否開啟下拉刷新,詳見頁面生命周期。 |
onReachBottomDistance | Number | 50 | 頁面上拉觸底事件觸發時距頁面底部距離,單位只支持px,詳見頁面生命周期 |
pages頁面配置
pages.json
是項目的配置,而這個配置文件里的pages
選項是項目的全局樣式配置
創建新的message頁面
右鍵pages新建message目錄,在message目錄下右鍵新建.vue文件,並選擇基本模板
創建完之后內容如下
<template>
</template>
<script>
</script>
<style>
</style>
隨便寫點兒東西
<template>
<view>
hello-uni
</view>
</template>
<script>
</script>
<style>
</style>
通過pages來配置頁面
屬性 | 類型 | 默認值 | 描述 |
---|---|---|---|
path | String | 配置頁面路徑 | |
style | Object | 配置頁面窗口表現,配置項參考 pageStyle |
pages數組數組中第一項表示應用啟動頁
"pages": [
{
"path":"pages/message/message"
},
{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "uni-app"
}
}
]
例:通過style修改頁面的標題和導航欄背景色,並且設置h5下拉刷新的特有樣式
"pages": [ //pages數組中第一項表示應用啟動頁,參考:https://uniapp.dcloud.io/collocation/pages
{
"path": "pages/message/message",
"style": {
//頁面標題
"navigationBarTitleText" : "信息頁",
//導航欄背景顏色
"navigationBarBackgroundColor": "#007AFF",
//導航欄標題顏色及狀態欄前景顏色,僅支持 black/white
"navigationBarTextStyle": "white",
//是否開啟下拉
"enablePullDownRefresh": true,
//設置為 true 則頁面整體不能上下滾動(bounce效果),只在頁面配置中有效,在globalStyle中設置無效
"disableScroll": true,
//配置編譯到 H5 平台時的特定樣式
"h5": {
//下拉刷新
"pullToRefresh": {
"color": "#007AFF"
}
}
}
},
{
"path": "pages/index/index",
//頁面級配置文件會覆蓋全局的配置
"style": {
"navigationBarTitleText": "uni-app"
}
}
],
配置tabbar
https://uniapp.dcloud.io/collocation/pages?id=tabbar
如果應用是一個多 tab 應用,可以通過 tabBar 配置項指定一級導航欄,以及 tab 切換時顯示的對應頁。
在 pages.json 中提供 tabBar 配置,不僅僅是為了方便快速開發導航,更重要的是在App和小程序端提升性能。在這兩個平台,底層原生引擎在啟動時無需等待js引擎初始化,即可直接讀取 pages.json 中配置的 tabBar 信息,渲染原生tab。
Tips
- 當設置 position 為 top 時,將不會顯示 icon
- tabBar 中的 list 是一個數組,只能配置最少2個、最多5個 tab,tab 按數組的順序排序。
- tabbar 切換第一次加載時可能渲染不及時,可以在每個tabbar頁面的onLoad生命周期里先彈出一個等待雪花(hello uni-app使用了此方式)
- tabbar 的頁面展現過一次后就保留在內存中,再次切換 tabbar 頁面,只會觸發每個頁面的onShow,不會再觸發onLoad。
- 頂部的 tabbar 目前僅微信小程序上支持。需要用到頂部選項卡的話,建議不使用 tabbar 的頂部設置,而是自己做頂部選項卡,可參考 hello uni-app->模板->頂部選項卡。
屬性說明:
屬性 | 類型 | 必填 | 默認值 | 描述 | 平台差異說明 |
---|---|---|---|---|---|
color | HexColor | 是 | tab 上的文字默認顏色 | ||
selectedColor | HexColor | 是 | tab 上的文字選中時的顏色 | ||
backgroundColor | HexColor | 是 | tab 的背景色 | ||
borderStyle | String | 否 | black | tabbar 上邊框的顏色,可選值 black/white | App 2.3.4+ 支持其他顏色值、H5 3.0.0+ |
blurEffect | String | 否 | none | iOS 高斯模糊效果,可選值 dark/extralight/light/none(參考:使用說明) | App 2.4.0+ 支持、H5 3.0.0+(只有最新版瀏覽器才支持) |
list | Array | 是 | tab 的列表,詳見 list 屬性說明,最少2個、最多5個 tab | ||
position | String | 否 | bottom | 可選值 bottom、top | top 值僅微信小程序支持 |
fontSize | String | 否 | 10px | 文字默認大小 | App 2.3.4+、H5 3.0.0+ |
iconWidth | String | 否 | 24px | 圖標默認寬度(高度等比例縮放) | App 2.3.4+、H5 3.0.0+ |
spacing | String | 否 | 3px | 圖標和文字的間距 | App 2.3.4+、H5 3.0.0+ |
height | String | 否 | 50px | tabBar 默認高度 | App 2.3.4+、H5 3.0.0+ |
midButton | Object | 否 | 中間按鈕 僅在 list 項為偶數時有效 | App 2.3.4+、H5 3.0.0+ |
其中 list 接收一個數組,數組中的每個項都是一個對象,其屬性值如下:
屬性 | 類型 | 必填 | 說明 |
---|---|---|---|
pagePath | String | 是 | 頁面路徑,必須在 pages 中先定義 |
text | String | 是 | tab 上按鈕文字,在 App 和 H5 平台為非必填。例如中間可放一個沒有文字的+號圖標 |
iconPath | String | 否 | 圖片路徑,icon 大小限制為40kb,建議尺寸為 81px * 81px,當 postion 為 top 時,此參數無效,不支持網絡圖片,不支持字體圖標 |
selectedIconPath | String | 否 | 選中時的圖片路徑,icon 大小限制為40kb,建議尺寸為 81px * 81px ,當 postion 為 top 時,此參數無效 |
示例:基本使用
pagePath頁面路徑,必須在 pages 選項中先定義path
pages
"pages": [ //pages數組中第一項表示應用啟動頁,參考:https://uniapp.dcloud.io/collocation/pages
{
"path": "pages/message/message",
},
{
"path": "pages/index/index",
//頁面級配置文件會覆蓋全局的配置
"style": {
"navigationBarTitleText": "uni-app"
}
},
{
"path": "pages/contact/contact"
}
],
tabBar
"tabBar": {
"list": [{
"text": "首頁",
"pagePath": "pages/index/index",
"iconPath": "static/tabs/home.png",
"selectedIconPath": "static/tabs/home-active.png"
},
{
"text": "信息",
"pagePath": "pages/message/message",
"iconPath": "static/tabs/message.png",
"selectedIconPath": "static/tabs/message-active.png"
},
{
"text": "我們",
"pagePath": "pages/contact/contact",
"iconPath": "static/tabs/contact.png",
"selectedIconPath": "static/tabs/contact-active.png"
}
]
},
示例:tabbar其他屬性的使用
"tabBar": {
//tab 上的文字默認顏色
"color" : "#0000ff",
//tab 上的文字選中時的顏色
"selectedColor" : "#DD524D",
//tab 的背景色
"backgroundColor" : "#555555",
// tabbar 上邊框的顏色,僅支持 black/white
"borderStyle" : "white",
//可選值 bottom、top .top 值僅微信小程序支持
"position": "top",
"list": [{
"text": "首頁",
"pagePath": "pages/index/index",
"iconPath": "static/tabs/home.png",
"selectedIconPath": "static/tabs/home-active.png"
},
{
"text": "信息",
"pagePath": "pages/message/message",
"iconPath": "static/tabs/message.png",
"selectedIconPath": "static/tabs/message-active.png"
},
{
"text": "我們",
"pagePath": "pages/contact/contact",
"iconPath": "static/tabs/contact.png",
"selectedIconPath": "static/tabs/contact-active.png"
}
]
},
condition啟動模式配置
https://uniapp.dcloud.io/collocation/pages?id=condition
啟動模式配置,僅開發期間生效,用於模擬直達頁面的場景,如:小程序轉發后,用戶點擊所打開的頁面。
屬性說明:
屬性 | 類型 | 是否必填 | 描述 |
---|---|---|---|
current | Number | 是 | 當前激活的模式,list節點的索引值 |
list | Array | 是 | 啟動模式列表 |
list說明:
屬性 | 類型 | 是否必填 | 描述 |
---|---|---|---|
name | String | 是 | 啟動模式名稱 |
path | String | 是 | 啟動頁面路徑 |
query | String | 否 | 啟動參數,可在頁面的 onLoad 函數里獲得 |
例:微信小程序模擬用戶點擊進入詳情頁
創建詳情頁
<template>
<view>這是詳情頁</view>
</template>
<script>
</script>
<style>
</style>
配置
加入到pages
里,配置頁面路徑
{
"path": "pages/detail/detail"
}
condition配置
"condition": { //模式配置,僅開發期間生效
"current": 0, //當前激活的模式(list 的索引項)
"list": [{
"name": "詳情頁", //模式名稱
"path": "pages/detail/detail", //啟動頁面,必選
"query": "id=50" //啟動參數,在頁面的onLoad函數里面得到
}]
}
訪問
對於h5頁面來說,只需要訪問pages
里面配置的path路徑即可
但是微信小程序不能輸路徑吧,這時候condition
的作用就出來了,你打開調試的項目,如果你配置了condition
你會發現,多了個你配置的頁面
點擊進入
點擊頁面參數
這樣我們就可以方便的進行調式了