[TOC]
# 底部Tab导航应用
一般一个应用不止一个页面,我们习惯如图所示,在主程序页面按照多页的方式来组织,
![](https://box.kancloud.cn/aad199da214359257c11105175cf4101_332x64.png)
## 页面文件
假设已经增加了两个页面
* [ ] pages/home/index
* [ ] pages/home/about
我们希望底部通过Tab的形式切换这两个页面。
文件pages/home/index.vue页面水平和垂直居中显示一行文字'Hello'。
pages/home/about页面类似,在页面上简单的显示一行文字。
要增加Tab支持,需要在pages.json文件中增加对tabs的配置,例如
```html
"tabBar": {
"color": "#cdcdcd",
"selectedColor": "#1296db",
"borderStyle": "black",
"backgroundColor": "#ffffff",
"list": [{
"pagePath": "pages/home/index",
"iconPath": "static/tabbar/home.png",
"selectedIconPath": "static/tabbar/homeHL.png",
"text": "首页"
}, {
"pagePath": "pages/home/about",
"iconPath": "static/tabbar/my.png",
"selectedIconPath": "static/tabbar/myHL.png",
"text": "关于"
}]
},
```
uni-app每个页面支持使用原生title,首页支持使用原生底部tab,这些是要在pages.json里配置,这些并不是vue页面的一部分。
> 根据微信小程序的规范,底部的Tab最多有5个,最少2个。
## 配置文件
pages.json
项目:02-UniAPP Tabs
```html
{
//pages数组中第一项表示应用启动页
//参考:https://uniapp.dcloud.io/collocation/pages
"pages": [{
"path": "pages/home/index",
"style": {
"navigationBarTitleText": "Hello world"
}
},
{
"path": "pages/home/about",
//重载全局设置
"style": {
"navigationBarTitleText": "About"
}
}
],
"globalStyle": { //全局设置
"navigationBarTextStyle": "black", //导航栏文本颜色
"navigationBarTitleText": "uni-app", //导航栏文本默认文字
"navigationBarBackgroundColor": "#F8F8F8", //导航栏背景颜色
"backgroundColor": "#F8F8F8" //页面的背景色
},
"tabBar": {
"color": "#cdcdcd",
"selectedColor": "#1296db",
"borderStyle": "black",
"backgroundColor": "#ffffff",
"list": [{
"pagePath": "pages/home/index",
"iconPath": "static/tabbar/home.png",
"selectedIconPath": "static/tabbar/homeHL.png",
"text": "首页"
}, {
"pagePath": "pages/home/about",
"iconPath": "static/tabbar/my.png",
"selectedIconPath": "static/tabbar/myHL.png",
"text": "关于"
}]
},
"condition": { //模式配置,仅开发期间生效
"current": 0, //当前激活的模式(list 的索引项,从0开始)
"list": [{
"name": "首页", //模式名称
"path": "pages/home/index", //启动页面,必选
"query": "" //启动参数,在页面的onLoad函数里面得到。
},
{
"name": "关于", //模式名称
"path": "pages/home/about", //启动页面,必选
"query": "" //启动参数,在页面的onLoad函数里面得到。
}
]
}
}
```
> 以后的项目都是基于Tabs多页导航模式,以本案例为基础增加功能页面。
- 内容介绍
- EcmaScript基础
- 快速入门
- 常量与变量
- 字符串
- 函数的基本概念
- 条件判断
- 数组
- 循环
- while循环
- for循环
- 函数基础
- 对象
- 对象的方法
- 函数
- 变量作用域
- 箭头函数
- 闭包
- 高阶函数
- map/reduce
- filter
- sort
- Promise
- 基本对象
- Arguments 对象
- 剩余参数
- Map和Set
- Json基础
- RegExp
- Date
- async
- callback
- promise基础
- promise-api
- promise链
- async-await
- 项目实践
- 标签系统
- 远程API请求
- 面向对象编程
- 创建对象
- 原型继承
- 项目实践
- Classes
- 构造函数
- extends
- static
- 项目实践
- 模块
- import
- export
- 项目实践
- 第三方扩展库
- immutable
- Vue快速入门
- 理解MVVM
- Vue中的MVVM模型
- Webpack+Vue快速入门
- 模板语法
- 计算属性和侦听器
- Class 与 Style 绑定
- 条件渲染
- 列表渲染
- 事件处理
- 表单输入绑定
- 组件基础
- 组件注册
- Prop
- 自定义事件
- 插槽
- 混入
- 过滤器
- 项目实践
- 标签编辑
- 移动客户端开发
- uni-app基础
- 快速入门程序
- 单页程序
- 底部Tab导航
- Vue语法基础
- 模版语法
- 计算属性与侦听器
- Class与Style绑定
- 样式与布局
- Box模型
- Flex布局
- 内置指令
- 基本指令
- v-model与表单
- 条件渲染指令
- 列表渲染指令v-for
- 事件与自定义属性
- 生命周期
- 项目实践
- 学生实验
- 贝店商品列表
- 加载更多数据
- 详情页面
- 自定义组件
- 内置组件
- 表单组件
- 技术专题
- 状态管理vuex
- Flyio
- Mockjs
- SCSS
- 条件编译
- 常用功能实现
- 上拉加载更多数据
- 数据加载综合案例
- Teaset UI组件库
- Teaset设计
- Teaset使用基础
- ts-tag
- ts-badge
- ts-button
- ta-banner
- ts-list
- ts-icon
- ts-load-more
- ts-segmented-control
- 代码模版
- 项目实践
- 标签组件
- 失物招领客户端原型
- 发布页面
- 检索页面
- 详情页面
- 服务端开发技术
- 服务端开发环境配置
- Koajs快速入门
- 快速入门
- 常用Koa中间件介绍
- 文件上传
- RestfulApi
- 一个复杂的RESTful例子
- 使用Mockjs生成模拟数据
- Thinkjs快速入门
- MVC模式
- Thinkjs介绍
- 快速入门
- RESTful服务
- RBAC案例
- 关联模型
- 应用开发框架
- 服务端开发
- PC端管理界面开发
- 移动端开发
- 项目实践
- 失物招领项目
- 移动客户端UI设计
- 服务端设计
- 数据库设计
- Event(事件)
- 客户端设计
- 事件列表页面
- 发布页面
- 事件详情页面
- API设计
- image
- event
- 微信公众号开发
- ui设计规范