uni-app的pages.json配置文件
pages.json文件是uni-app 中页面管理、窗口样式、原生的导航栏、底部的原生tabbar 等的配置文件,包含如下节点
1.pages : 设置页面路径及窗口表现
一个pages接收一个数组,数组中由多个page组成,每个page有一个path和一个style组成,如:
{ "pages": [ { "path": "pages/index/index", "style": { ... } }, { "path": "pages/login/login", "style": { ... } } ] }
style部分属性挺多,这里只列举出其中通用的部分
navigationBarBackgroundColor 导航栏背景颜色(同状态栏背景色),如"#000000" navigationBarTextStyle 导航栏标题颜色及状态栏前景颜色,仅支持 black/white navigationBarTitleText 导航栏标题文字内容 navigationBarShadow 导航栏阴影,配置参考下方 导航栏阴影 backgroundTextStyle 下拉 loading 的样式,仅支持 dark/light enablePullDownRefresh 是否开启下拉刷新,详见页面生命周期。Boolean onReachBottomDistance 页面上拉触底事件触发时距页面底部距离,单位只支持px,详见页面生命周期
2.tabBar : 设置底部 tab 的表现
"tabBar": { "color": "#7A7E83",//文字颜色 "selectedColor": "#3cc51f",//选中后文字颜色 "borderStyle": "black",//边框的颜色,可选值 black/white "backgroundColor": "#ffffff",//背景色 "list": [{//tab 的列表,2-5个 tab "pagePath": "pages/component/index",//页面路径,必须在 pages 中先定义 "iconPath": "static/image/icon_component.png",//图片路径,icon 大小限制为40kb,建议尺寸81px*81px "selectedIconPath": "static/image/icon_component_HL.png",//选中时的图片路径 "text": "组件"//tab 上按钮文字 }, { "pagePath": "pages/API/index", "iconPath": "static/image/icon_API.png", "selectedIconPath": "static/image/icon_API_HL.png", "text": "接口" }] }
可以通过midButton来设置中间按钮,仅为偶数时有效
midButton:中间按钮 仅在 list 项为偶数时有效
3.globalStyle : 设置默认页面的窗口表现
"globalStyle": { "navigationBarTextStyle": "black",//导航栏标题颜色及状态栏前景颜色,仅支持 black/white "navigationBarTitleText": "演示",//导航栏标题文字内容 "navigationBarBackgroundColor": "#F8F8F8",//导航栏背景颜色(同状态栏背景色) "backgroundColor": "#F8F8F8",//下拉显示出来的窗口的背景色 "usingComponents":{//引用小程序组件 "collapse-tree-item":"/components/collapse-tree-item" }, "pageOrientation": "portrait", //横屏配置,全局屏幕旋转设置(仅 APP/微信/QQ小程序),支持 auto / portrait / landscape "rpxCalcMaxDeviceWidth": 960,//rpx 计算所支持的最大设备宽度,单位 px "rpxCalcBaseDeviceWidth": 375,//rpx 计算使用的基准设备宽度 "rpxCalcIncludeWidth": 750 // rpx 计算特殊处理的值,始终按实际的设备宽度计算,单位 rpx },
4.easycom : 组件自动引入规则
"easycom": { "autoscan": true,//是否开启自动扫描,开启后将会自动扫描符合components/组件名称/组件名称.vue目录结构的组件 "custom": {//以正则方式自定义组件匹配规则 "^uni-(.*)": "@/components/uni-$1.vue", // 匹配components目录内的vue文件 "^vue-file-(.*)": "packageName/path/to/vue-file-$1.vue" // 匹配node_modules内的vue文件 } }
5.condition : 启动模式配置
"condition": { //模式配置,仅开发期间生效 "current": 0, //当前激活的模式(list 的索引项) "list": [{ "name": "swiper", //模式名称 "path": "pages/component/swiper/swiper", //启动页面,必选 "query": "interval=4000&autoplay=false" //启动参数,在页面的onLoad函数里面得到。 }, { "name": "test", "path": "pages/component/switch/switch" } ] }
6.subPackages : 分包加载配置
分包加载配置,此配置为小程序的分包加载机制,因小程序有体积和资源加载限制,各家小程序平台提供了分包方式,优化小程序的下载和启动速度。
"subPackages": [{ "root": "pagesA",//子包的跟目录,pages中的路径都是相对于这个路径的 "pages": [{ "path": "list/list", "style": { ...} }] }, { "root": "pagesB", "pages": [{ "path": "detail/detail", "style": { ...} }] }]
7.其他对特定平台的支持
这部分暂时不用管
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库