Skip to content

AppPage 页面

应用的每一个页面。

基本使用

html
<be-app-page showNavbar title="标题" bgColor="#f2f2f2">
  <template #navBar="{ title }">
    <NavBar :title="title"></NavBar>
  </template>
  <view>内容</view>
</be-app-page>

INFO

顶部导航栏一般根据产品设计,有不同的样式和功能。所以导航栏组件请自行封装,通过navBarslot 传入即可。这里不提供 NavBar 组件代码,只用于演示。

沉浸式导航栏

html
<be-app-page
  showNavbar
  title="标题"
  bgColor="#f2f2f2"
  immersiveNav
  @toggleImmersive="toggleImmersive"
>
  <template #navBar="{ title }">
    <NavBar :title="title" :bgTheme="bgTheme"></NavBar>
  </template>
  <view class="banner">Banner</view>
  <view>文本</view>
  <view>文本</view>
  ...
</be-app-page>
ts
import { ref } from 'vue';

const defaultBgTheme = 'dark';
// 导航栏背景色是暗色还是亮色
const bgTheme = ref('dark');

const toggleImmersive = (isImmersive: boolean) => {
  bgTheme.value = isImmersive ? defaultBgTheme : 'light';
};

下拉刷新

html
<be-app-page showNavbar title="标题" bgColor="#f2f2f2" pullDownRefresh @refreshData="refreshData">
  <template #navBar="{ title }">
    <NavBar :title="title"></NavBar>
  </template>
  <view>文本文本文本文本文本文本文本文本文本文本</view>
</be-app-page>
ts
const refreshData = (finishRefresh: Function) => {
  setTimeout(() => {
    finishRefresh();
  }, 1000);
};

API

Props

属性名说明类型默认值
showNavbar显示导航栏booleanfalse
title导航栏标题string-
navBgColor导航栏背景色css background-color#ffffff
immersiveNav是否开启沉浸式导航栏booleanfalse
bgColor页面背景色css background-color#ffffff
loading页面加载状态booleanfalse
loadingIconSize页面加载图标大小css font-size50rpx
pullDownRefresh是否开启页面下拉刷新booleanfalse
refresherColor下拉刷新器颜色css color#aaaaaa
scrollWithAnimation是否开启页面滚动动画booleanfalse

Events

事件名称说明回调参数
refreshData下拉刷新数据(finishRefresh: Function) => {}
toggleImmersive沉浸状态切换时,isImmersive=true表示导航栏背景透明(isImmersive: boolean) => {}

Events extend uni-app scroll-view

事件名称说明
scrolltolower事件说明
scroll事件说明

Slots

插槽名说明slot props默认值
navBar自定义导航栏{ title: string }
loading自定义加载视图,推荐传入 BeViewLoading 组件-
upLayer顶层视图。由于在微信小程序中,position: fixed定位的基准元素是最近的<scroll-view>而不是视口。如果需要跳出这个限制,比如全局弹出层,请把视图代码放在该插槽中。-
default页面内容-

Methods

方法名说明参数
finishRefresh结束下拉刷新() => void
backTop返回页面顶部() => void