Skip to content

NavBar 导航栏

介绍

为页面提供导航功能,常用于页面顶部。

引入

通过以下方式来引入组件。

js
import { createApp } from 'vue';
import { NavBar } from '@szhn/dh-design-mobile';

const app = createApp();
app.use(NavBar);

代码演示

基础用法

通过 title 属性设置导航栏标题。

html
<van-nav-bar title="标题" />

返回上级

在导航栏实现返回上级功能。

html
<van-nav-bar
  title="标题"
  left-text="返回"
  left-arrow
  @click-left="onClickLeft"
/>
js
export default {
  setup() {
    const onClickLeft = () => history.back();
    return {
      onClickLeft,
    };
  },
};

右侧按钮

在导航栏右侧添加可点击的按钮。

html
<van-nav-bar
  title="标题"
  left-text="返回"
  right-text="按钮"
  left-arrow
  @click-left="onClickLeft"
  @click-right="onClickRight"
/>
js
import { showToast } from '@szhn/dh-design-mobile';

export default {
  setup() {
    const onClickLeft = () => history.back();
    const onClickRight = () => showToast('按钮');
    return {
      onClickLeft,
      onClickRight,
    };
  },
};

使用插槽

可以通过插槽自定义导航栏两侧的内容。

html
<van-nav-bar title="标题" left-text="返回" left-arrow>
  <template #right>
    <van-icon name="search" size="18" />
  </template>
</van-nav-bar>

禁用按钮

通过 left-disabledright-disabled 属性来禁用两侧的按钮。按钮被禁用时透明度降低,且无法点击。

html
<van-nav-bar
  title="标题"
  left-text="返回"
  right-text="按钮"
  left-arrow
  left-disabled
  right-disabled
/>

API

Props

参数说明类型默认值
title标题string''
left-text左侧文案string''
right-text右侧文案string''
left-disabled v4.6.8是否禁用左侧按钮,禁用时透明度降低,且无法点击booleanfalse
right-disabled v4.6.8是否禁用右侧按钮,禁用时透明度降低,且无法点击booleanfalse
left-arrow是否显示左侧箭头booleanfalse
border是否显示下边框booleantrue
fixed是否固定在顶部booleanfalse
placeholder固定在顶部时,是否在标签位置生成一个等高的占位元素booleanfalse
z-index导航栏 z-indexnumber | string1
safe-area-inset-top是否开启顶部安全区适配booleanfalse
clickable是否开启两侧按钮的点击反馈booleantrue

Slots

名称说明
title自定义标题
left自定义左侧区域内容
right自定义右侧区域内容

Events

事件名说明回调参数
click-left点击左侧按钮时触发event: MouseEvent
click-right点击右侧按钮时触发event: MouseEvent

类型定义

组件导出以下类型定义:

ts
import type { NavBarProps } from '@szhn/dh-design-mobile';

主题定制

样式变量

组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 ConfigProvider 组件

名称默认值描述
--van-nav-bar-height46px-
--van-nav-bar-backgroundvar(--van-background-2)-
--van-nav-bar-arrow-size16px-
--van-nav-bar-icon-colorvar(--van-primary-color)-
--van-nav-bar-text-colorvar(--van-primary-color)-
--van-nav-bar-title-font-sizevar(--van-font-size-lg)-
--van-nav-bar-title-text-colorvar(--van-text-color)-
--van-nav-bar-z-index1-