Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
uni-app
提交
2eb5612a
U
uni-app
项目概览
DCloud
/
uni-app
4 个月 前同步成功
通知
730
Star
38706
Fork
3642
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
7
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
uni-app
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
7
Issue
7
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
未验证
提交
2eb5612a
编写于
11月 15, 2020
作者:
W
wanganxp
提交者:
GitHub
11月 15, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update pages.md
上级
b4eeafad
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
19 addition
and
6 deletion
+19
-6
docs/collocation/pages.md
docs/collocation/pages.md
+19
-6
未找到文件。
docs/collocation/pages.md
浏览文件 @
2eb5612a
...
...
@@ -894,7 +894,10 @@ h5 平台下拉刷新动画,只有 circle 类型。
-
`nvue`
页面里引用
`.vue`
后缀的组件,会按照nvue方式使用原生渲染,其中不支持的css会被忽略掉。这种情况同样支持
`easycom`
# tabBar
如果应用是一个多 tab 应用,可以通过 tabBar 配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页。
如果应用是一个多 tab 应用,可以通过 tabBar 配置项指定一级导航栏,以及 tab 切换时显示的对应页。
在 pages.json 中提供 tabBar 配置,不仅仅是为了方便快速开发导航,更重要的是在App和小程序端提升性能。在这两个平台,底层原生引擎在启动时无需等待js引擎初始化,即可直接读取 pages.json 中配置的 tabBar 信息,渲染原生tab。
**Tips**
...
...
@@ -944,18 +947,16 @@ h5 平台下拉刷新动画,只有 circle 类型。
midButton没有pagePath,需监听点击事件,自行处理点击后的行为逻辑。监听点击事件为调用API:uni.onTabBarMidButtonTap,详见
[
https://uniapp.dcloud.io/api/ui/tabbar?id=ontabbarmidbuttontap
](
https://uniapp.dcloud.io/api/ui/tabbar?id=ontabbarmidbuttontap
)
#### **tabbar常见问题** @tips-tabbar
-
tabbar 的默认高度,在不同平台不一样。App端的默认高度在HBuilderX 2.3.4起从56px调整为50px,与H5端统一。开发者也可以自行设定高度,调回56px。
[
详见
](
https://uniapp.dcloud.io/frame?id=%e5%9b%ba%e5%ae%9a%e5%80%bc
)
-
tabbar 的 js api 见
[
接口-界面-tabbar
](
https://uniapp.dcloud.io/api/ui/tabbar
)
,可实现动态显示隐藏(如弹出层无法覆盖tabbar)、内容修改(如国际化)、item加角标等功能。hello uni-app中也有示例。
-
tabbar 的 item 点击事件见
[
页面生命周期的onTabItemTap
](
https://uniapp.dcloud.io/frame?id=%E9%A1%B5%E9%9D%A2%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F
)
。
-
代码跳转到tabbar页面,api只能使用
[
uni.switchTab
](
https://uniapp.dcloud.io/api/router?id=switchtab
)
,不能使用uni.navigateTo、uni.redirectTo;使用navigator组件跳转时必须设置
[
open-type="switchTab"
](
https://uniapp.dcloud.io/component/navigator
)
-
代码跳转到 tabbar 页面,api只能使用
[
uni.switchTab
](
https://uniapp.dcloud.io/api/router?id=switchtab
)
,不能使用uni.navigateTo、uni.redirectTo;使用navigator组件跳转时必须设置
[
open-type="switchTab"
](
https://uniapp.dcloud.io/component/navigator
)
-
tabbar 的默认高度,在不同平台不一样。App端的默认高度在HBuilderX 2.3.4起从56px调整为50px,与H5端统一。开发者也可以自行设定高度,调回56px。
[
详见
](
https://uniapp.dcloud.io/frame?id=%e5%9b%ba%e5%ae%9a%e5%80%bc
)
-
tabbar 在H5端是div模拟的,属于前端屏幕窗口的一部分,如果要使用bottom居底定位方式,应该使用css变量
`--window-bottom`
,比如悬浮在tabbar上方10px的按钮,样式如下
`bottom: calc(var(--window-bottom) + 10px)`
-
中间带+号的tabbar模板例子,
[
参考
](
https://ext.dcloud.net.cn/plugin?id=98
)
。可跨端,但+号不凸起。如需中间凸起,配置tabbar的midButton。
-
原生的tabbar有且只有一个且在首页。二级页如需的tab,前端自行实现。
-
若App端自定义tabbar,建议使用nvue并做成单页方式,即所有tabbar的页面内容其实写在一个nvue页面里,这样的性能体验更好。
-
微信通过webview自定义tabbar,在uni-app也支持,但仅支持微信。因该功能体验不佳,app上没有实现这个方式,而是推荐使用app提供的自定义tabbar方式,不管是原生tabbar额外的自定义配置还是nvue的单页自定义tabbar。
-
如果是需要先登录、后进入tab页面,不需要把登陆页设为首页,首页仍然是tabbar页,可参考HBuilderX新建uni-app项目时的登陆模板
-
前端弹出遮罩层挡不住tabbar的问题,跨端处理方式时动态隐藏tabbar。App端可以使用plus.nativeObj.view或subNVue做弹出和遮罩,可参考这个
[
底部原生图标分享菜单例子
](
https://ext.dcloud.net.cn/plugin?id=69
)
-
微信小程序模拟器1.02.1904090版有bug,在缩放模拟器页面百分比后,tabbar点击多次后就会卡死。真机无碍,使用时注意。
[
详见
](
https://developers.weixin.qq.com/community/develop/doc/0002e6e6bf0d602d8c783e10756400
)
-
PC宽屏上,当页面存在topWindow或leftWindow或rightWindow等多窗体结构时,tabBar自动隐藏(HBuilderX 2.9.9),请使用
[
custom-tab-bar组件
](
https://uniapp.dcloud.io/component/custom-tab-bar
)
配置 tabBar 的位置。
**代码示例**
```
json
...
...
@@ -978,6 +979,18 @@ midButton没有pagePath,需监听点击事件,自行处理点击后的行为
}
```
#### 自定义tabbar @custom-tab-bar
原生tabBar是相对固定的配置方式,可能无法满足所有场景,这就涉及到自定义tabBar。
但注意除了H5端,自定义tabBar的性能体验会低于原生tabBar。App和小程序端非必要不要自定义。
-
H5端的自定义tabBar组件:H5端不存在原生tabBar性能更高的概念,并且宽屏下常见的tabBar在顶部而不是底部,此时可以使用
[
custom-tab-bar组件
](
https://uniapp.dcloud.io/component/custom-tab-bar
)
来自定义
-
普通自定义tabBar:使用view自行绘制tabBar。如果页面是多页方式,切换tabBar将无法保持底部tabBar一直显示。所以这种情况建议使用单页方式。单页方式,如果是复杂页面,应用性能会下降明显,需减少页面复杂度。如果是App端,nvue单页的性能会显著高于vue页面
-
微信小程序自定义tabbar:微信提供一直基于webview自定义tabBar的方案。该功能体验不佳,不太推荐使用。如果要使用,参考
[
微信文档
](
https://developers.weixin.qq.com/miniprogram/dev/framework/ability/custom-tabbar.html
)
,项目根创建 custom-tab-bar 目录,注意里边的代码是 wxml,wxss,不是 vue,uni-app编译器会直接拷贝该目录到微信小程序中
-
原生的tabbar有且只有一个且在首页。二级页如需的tab,需自行编写view来实现。一般二级页面更适合的导航是
[
segement组件
](
https://ext.dcloud.net.cn/plugin?id=54
)
# condition
启动模式配置,仅开发期间生效,用于模拟直达页面的场景,如:小程序转发后,用户点击所打开的页面。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录