《UniApp 页面配置文件pages.json》

🧩 一、pages.json 是什么?

pages.jsonUniApp 项目中非常重要的全局配置文件,用来:

  • 注册页面路径;

  • 定义页面窗口样式;

  • 设置底部 tabBar;

  • 配置路由、导航栏、动画等。

它控制着整个 App 的页面结构和外观。

  • 修改 pages.json 后要重新编译才能生效;

  • 如果页面路径错误,会直接报错 "找不到页面";

  • pages.json 的顺序决定了 首页(第一个页面)

  • 不同平台有些属性不生效(如 gestureBack 只在 App 有效)。

📘 二、基本结构

javascript 复制代码
{
  "pages": [
    {
      "path": "pages/index/index",
      "style": {
        "navigationBarTitleText": "首页",
        "navigationBarBackgroundColor": "#ffffff",
        "navigationBarTextStyle": "black"
      }
    },
    {
      "path": "pages/user/user",
      "style": {
        "navigationBarTitleText": "我的"
      }
    }
  ],
  "tabBar": {
    "color": "#666666",
    "selectedColor": "#007AFF",
    "backgroundColor": "#ffffff",
    "borderStyle": "black",
    "list": [
      {
        "pagePath": "pages/index/index",
        "text": "首页",
        "iconPath": "static/icon/home.png",
        "selectedIconPath": "static/icon/home-active.png"
      },
      {
        "pagePath": "pages/user/user",
        "text": "我的",
        "iconPath": "static/icon/user.png",
        "selectedIconPath": "static/icon/user-active.png"
      }
    ]
  },
  "globalStyle": {
    "navigationBarTextStyle": "white",
    "navigationBarTitleText": "UniApp示例",
    "navigationBarBackgroundColor": "#007AFF",
    "backgroundColor": "#F8F8F8"
  }
}

⚙️ 三、常用配置项讲解

1️⃣ pages(页面注册)

每个页面都必须在这里注册,否则不会被编译。

  • path:页面路径(必须与实际文件路径一致);

  • style:页面样式配置(相当于页面级 page.json)。

2️⃣ style(页面配置)

控制单个页面的窗口表现。

常用属性:

属性名 说明 示例
navigationBarTitleText 导航栏标题 "我的页面"
navigationBarBackgroundColor 导航栏背景色 "#ffffff"
navigationBarTextStyle 导航栏文字颜色 "black""white"
navigationStyle 自定义导航栏 "custom"(用于自定义导航栏)
enablePullDownRefresh 是否开启下拉刷新 true
backgroundColor 页面背景颜色 "#f8f8f8"
backgroundTextStyle 下拉 loading 样式 "dark""light"
disableScroll 禁止页面滚动 true
onReachBottomDistance 触底距离触发加载事件 50
gestureBack 是否开启 iOS 侧滑返回 true

3️⃣ globalStyle(全局默认样式)

对所有页面生效,除非单页覆盖:

javascript 复制代码
"globalStyle": {
  "navigationBarTextStyle": "white",
  "navigationBarBackgroundColor": "#007AFF",
  "backgroundColor": "#F8F8F8"
}

4️⃣ tabBar(底部导航栏)

配置应用底部的固定导航栏:

属性 含义
color 默认文字颜色
selectedColor 选中时文字颜色
backgroundColor 背景颜色
borderStyle 上边框颜色(black/white)
list tab 列表,每项包含 pagePath、text、iconPath、selectedIconPath

5️⃣ 其他重要配置

配置项 说明
subPackages 分包加载配置(用于大项目)
preloadRule 预加载页面
condition 启动调试时的默认启动页面
animationType 页面切换动画类型
animationDuration 页面切换动画时长(ms)

🧱 四、navigationStyle: custom(自定义导航栏)

如果你想使用自定义导航栏(比如封装的 CustomNavBar),要在对应页面的 style 中加上:

javascript 复制代码
{
  "navigationStyle": "custom"
}

⚠️ 这样系统的导航栏会被隐藏,需要自己手动适配状态栏和标题栏高度。

⚠️ 五、单页面 page.json(Vue 文件内)

Vue 页面文件中 ,你也可以写 export default 内的 navigationBarTitleText 配置,但推荐放在 pages.json 里。

相关推荐
计算机魔术师25 分钟前
Dario Amodei 发文呼吁为前沿 AI 降速并提出三点计划
前端
计算机魔术师40 分钟前
OpenAI的AI代理偷偷给RubyGems下毒,我们却毫无察觉
前端
甲维斯1 小时前
0代码,0建模,3句话开发一个3D游戏!
前端·游戏·游戏开发
IT_陈寒1 小时前
Vue的响应式更新把我坑惨了,原来问题出在这
前端·人工智能·后端
tingke1 小时前
别再堆 AGENTS.md 了:前端团队的 Agent 上下文分层落地指南
前端
李明卫杭州2 小时前
React 复合事件系统对比解析
前端·javascript·react.js
葡萄城技术团队2 小时前
SpreadJS V19.2 新特性揭秘:FILTERXML 函数
前端
袋鼠云数栈UED团队3 小时前
AI Coding 方法论分析:同一个需求 SpecKit 、 Superpowers、 MattpocockSkills 不同设计
前端·aigc·ai编程
掰头战士3 小时前
Prompt Cache,如果agent全靠LLM方做隐式缓存实在不够用。
前端·llm·agent
LEE3 小时前
前端转型全栈 01:数据建模,前端最大的盲区
前端·javascript·后端